Я, вероятно, опоздал, но у меня была та же проблема, и я нашел два решения.
Сначала обманывает Nginx, что статус 405 - это на самом деле 200 OK, а затем proxy_pass его в ваш HAProxy следующим образом:
error_page 405 =200 @405;
location @405 {
root /;
proxy_pass http://yourproxy:8080;
}
Второе решение - просто перехватить запрос OPTIONS и создать ответ на эти запросы:
location / {
if ($request_method = OPTIONS ) {
add_header Content-Length 0;
add_header Content-Type text/plain;
return 200;
}
}
Просто выберите, какой из них вам больше подходит.
Я написал это в сообщении в блоге , где вы можете найти более подробную информацию.