为啥 nginx 会忽略位置上下文中的 proxy_read_timeout?
Posted
技术标签:
【中文标题】为啥 nginx 会忽略位置上下文中的 proxy_read_timeout?【英文标题】:Why may nginx ignore proxy_read_timeout inside location context?为什么 nginx 会忽略位置上下文中的 proxy_read_timeout? 【发布时间】:2018-07-04 18:46:57 【问题描述】:配置如下:
server
...
proxy_read_timeout 45s;
...
location /admin
proxy_pass http://ADMIN_APP_IP:8000;
location /admin/analytics
proxy_read_timeout 900s;
由于某种原因,当我在location /admin/analytics
中向https://mystageaddr.com/admin/analytics/ proxy_read_timeout
发送请求时似乎被忽略了,因为在45s
之后nginx 返回504 错误。如果我在服务器上下文中更改 proxy_read_timeout
值,一切正常。
文档说应该可以在location
http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_read_timeout 中使用proxy_read_timeout
,也许我错过了什么?
【问题讨论】:
【参考方案1】:这是我的错,我忘记了 nginx 位置优先级 (Nginx location priority),我的配置中有一个具有更高优先级的正则表达式。
【讨论】:
以上是关于为啥 nginx 会忽略位置上下文中的 proxy_read_timeout?的主要内容,如果未能解决你的问题,请参考以下文章
nginx proxy_next_upstream模块 重复提交问题