乘客不为服务器块内的位置块工作
Posted
技术标签:
【中文标题】乘客不为服务器块内的位置块工作【英文标题】:Passenger not working for location block inside server block 【发布时间】:2014-03-07 04:42:32 【问题描述】:我在我的 nginx 服务器上配置了Passenger,以便为来自特定域的 Rails 应用程序提供服务。
我需要在我的应用程序上设置一个特定路径 (/works
),以免在 60 秒后超时,因为上传文件需要一段时间,而且我怀疑超时触发得太早了。我想使用proxy_connect_timeout
来解决这个问题。
我尝试使用特定于该路径的位置块来增加超时,但这会导致对 /works
(或任何子路径)的每个请求都会导致 404。
server
listen 80;
server_name myserver.com;
root /path/to/my/app/public;
passenger_enabled on;
location /works
proxy_connect_timeout 300s;
这是error.log
中的条目:
2014/02/10 04:30:31 [错误] 9579#0: *4 "/path/to/my/app/public/works/index.html" 未找到(2:没有这样的文件或目录),客户端:0.0.0.0,服务器:myserver.com,请求:“GET /works/ HTTP/1.1”,主机:“myserver.com”
从我从该条目中收集到的信息来看,它似乎是公开的,好像它不知道应该将请求传递给 Rails。我还尝试从该位置块启用乘客,但没有运气。
如何让它工作?还有一种方法可以使位置块仅作用于/works
,而不作用于任何子路径(例如/works/1
)?
【问题讨论】:
【参考方案1】:您必须在每个位置块中重新指定passenger_enabled
。
来自Phusion Passenger users guide:
使用
location
块时,您必须在要启用 Phusion Passenger 的每个location
块中重新指定passenger_enabled
。这是因为每个location
块都默认关闭了passenger_enabled
。
【讨论】:
谢谢,我会再试一次。我以为我已经尝试过了,但它不起作用,但也许我只是做错了什么。以上是关于乘客不为服务器块内的位置块工作的主要内容,如果未能解决你的问题,请参考以下文章
工作总结 错误 using 块缺少结束字符“}”。请确保此块内的所有“{”都有匹配的“}”字符,并且任何“}”都不会解释为标记。
如何使用 Google Vision Api 检测块内的所有文本
描述块内的 jest.setTimeOut() 是不是仅将超时应用于描述块内的测试