我们目前正在使用HAProxy作为负载均衡器,它会定期向下游框发出请求,以确保它们使用OPTIONS请求存活:
选项/index.html HTTP/1.0
我正在使用缓存(使用ncache)将nginx设置为反向代理.出于某种原因,当OPTIONS请求进入时,nginx返回405:
192.168.1.10 - - [22/Oct/2008:16:36:21 -0700]"OPTIONS /index.html HTTP/1.0"405 325" - "" - "192.168.1.10
当直接点击下游网络服务器时,我得到了适当的200响应.我的问题是:如何让nginx将响应传递给HAProxy,或者,如何在nginx.conf中设置响应?
我可能迟到了,但我遇到了同样的问题,并找到了两个解决方案.
首先是欺骗Nginx,405状态实际上是200 OK然后代理将它传递给你的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; } }
只需选择哪一个更适合你.
我在博客文章中写了这篇文章,你可以在其中找到更多细节.