nginx 504网关超时

时间:2011-05-21 16:34:04

标签: ruby-on-rails nginx passenger http-status-code-504

我在nginx上运行带有phusion-passenger的rails3.0.7项目。 我正在做ajax,花了大约15分钟来处理。 它用firebug跳出一个错误,在拨打ajax 10分钟后说“504 Gateway Time-out”。

能不能让我知道如何找到问题。

谢谢,本

环境

  • OS:mac osx 10.6.7
  • ruby​​:与rvm一起安装的1.9.2p180
  • gem:1.6.2
  • 乘客3.0.7
  • rails:3.0.7
  • mysql:使用brew安装的5.5.10
  • nginx:1.0.0独立安装passender

4 个答案:

答案 0 :(得分:7)

这是一个nginx超时错误。如果您真的希望允许超过10分钟完成任务,请查看以下文章,了解需要调整哪些参数以避免超时的线索。

How do I prevent a gateway timeout with nginx

答案 1 :(得分:3)

我在Mac OS X(Yosemite)上遇到了与Rails 4类似的问题。所以我将以下内容添加到我的特定Nginx位置。

proxy_connect_timeout 43200000;
proxy_read_timeout    43200000;
proxy_send_timeout    43200000;

所以我的Nginx整体配置如下。

location /my_sub_path/ {
    root /my/rails/project/public/folder/path

    proxy_http_version 1.1;
    chunked_transfer_encoding off;
    proxy_buffering off;
    proxy_cache off;

    proxy_connect_timeout 43200000;
    proxy_read_timeout    43200000;
    proxy_send_timeout    43200000;

    proxy_redirect     off;
    proxy_set_header   Host             $http_host;
    proxy_set_header   X-Real-IP        $remote_addr;
    proxy_set_header   X-Forwarded-Proto $scheme;
    proxy_pass http://127.0.0.1:3000/;
}

答案 2 :(得分:0)

来自phusion-passenger的问题。 你应该改变文件:( gems> passenger-3.0.18> ext> nginx> Configuration.c)

ngx_conf_merge_msec_value(conf->upstream_config.send_timeout,
                          prev->upstream_config.send_timeout, 6000000);

ngx_conf_merge_msec_value(conf->upstream_config.read_timeout,
                          prev->upstream_config.read_timeout, 6000000);

原点超时为600000,仅需10分钟。 我试图改变nginx.conf,但没有用。

答案 3 :(得分:-3)

这是一个nginx超时错误。