10

我在 nginx 上运行一个带有 phusion-passenger 的 rails3.0.7 项目。当我在做一个需要大约 15 分钟来处理的 ajax 时。在调用 ajax 10 分钟后,它会跳出一个错误,提示“504 Gateway Time-out”。

有人可以给我一些关于如何找到问题的想法。

谢谢,本

环境

  • 操作系统:mac osx 10.6.7
  • ruby: 1.9.2p180 安装 rvm
  • 宝石:1.6.2
  • 乘客 3.0.7
  • 导轨:3.0.7
  • mysql: 5.5.10 与 brew 一起安装
  • nginx: 1.0.0 独立安装passender
4

4 回答 4

7

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

如何使用 nginx 防止网关超时

于 2011-08-11T14:33:40.703 回答
5

我在 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/;
}
于 2016-03-31T05:53:54.270 回答
-1

这是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,但没有奏效。

于 2013-03-26T01:48:53.903 回答
-6

这是一个 nginx 超时错误。

于 2013-03-22T06:14:52.577 回答