Phusion Passenger + Nginx:在nginx conf中设置连接超时参数

时间:2014-12-24 06:59:35

标签: ruby-on-rails nginx timeout passenger

如果我想增加所有请求的超时,那么Nginx中应该包含什么连接超时选项?

目前,任何花费超过一分钟的请求都会在浏览器中使用504 Connection Timed Out超时,我想增加时间。

这是我在Nginx中的当前配置:

server {
    listen       443;

    ssl                  on;
    ssl_certificate      /opt/nginx/certs/ssl.pem;
    ssl_certificate_key  /opt/nginx/certs/ssl.key;
    keepalive_timeout 75;
    ssl_session_timeout  5m;

    ssl_protocols  SSLv2 SSLv3 TLSv1;
    ssl_ciphers  HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers   on;

    server_name  <server_url>;
    root         /home/ubuntu/rails_app/public;
    passenger_enabled on;
    error_page   500 502 503 504  /50x.html;
}

我已经尝试过包含以下选项但不起作用 -

proxy_connect_timeout
proxy_send_timeout
proxy_read_timeout
send_timeout

2 个答案:

答案 0 :(得分:0)

尝试极端超时以查看问题是否会重现

  • client_header_timeout 600s;
  • client_body_timeout 600s;
  • keepalive_timeout 600s;
  • proxy_read_timeout 600s;
  • proxy_send_timeout 600s;
  • lingering_timeout 600s;
  • lingering_time 600s;
  • send_timeout 600s;

然后重启nginx。

答案 1 :(得分:0)

呈现相同条件的一种情况是,nginx位于负载均衡器(如AWS Application或Elastic,负载均衡器(ALB))的后面。

ALB具有可配置的“空闲超时”,默认为60秒。

如果在空闲超时内未收到任何响应,则ALB将关闭连接。 Nginx日志将显示HTTP 499错误,“客户端已关闭请求”。 https://httpstatuses.com/499

ALB将向用户的浏览器返回504连接超时错误。 https://httpstatuses.com/504

ALB的“空闲超时”将提供一个上限,必须提高该限制,才能影响下游的Nginx或乘客超时。