【发布时间】: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)?
【问题讨论】:
标签: ruby-on-rails configuration nginx passenger