在nginx中处理OPTIONS请求

pftdvrlh  于 2023-11-17  发布在  Nginx
关注(0)|答案(2)|浏览(199)

我们目前使用HAProxy作为负载均衡器,它定期向下游盒子发出请求,以确保它们使用OPTIONS请求活着:
HTTP/1.0/2016 - 03 - 28
我正在使用缓存(使用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
当直接命中下游的web服务器时,我得到了一个正确的200响应。我的问题是:如何让nginx将该响应沿着给HAProxy,或者,如何在nginx.conf中设置响应?

vaj7vani

vaj7vani1#

我可能迟到了,但我遇到了同样的问题,并找到了两个解决方案。
首先是欺骗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;
    }
}


选一个更适合你的
我在blog post中写了这篇文章,你可以在这里找到更多细节。

68bkxrlz

68bkxrlz2#

在httpchk选项中,您可以像这样指定HTTP方法:

httpchk GET http://example.com/check.php

字符串
你也可以使用POST,或者像/这样的普通URI。我让它检查PHP,因为PHP在Nginx外部运行。

相关问题