Nginx和乘客请求超时(nginx状态码499)

免责声明:我已经阅读了大量的post在这里,在stackoverflow和其他网页,我不能拿出一个解决scheme,所以希望这会有所帮助。

我们使用nginx和HAProxy在Passenger上运行Rails应用程序。

乘客:4.0.7 Nginx:1.4.1

该应用程序运行良好,但时常,请求花费太长的时间完成:

#nginx access.log xxxx – – [19 / Mar / 2015:01:07:19 +0100]“GET / HTTP / 1.0”499 0“ – ”“runscope-radar / 2.0”

请求花费很长时间才能完成,nginx返回一个499,HAProxy将其转换为504.大约30分钟后,服务器恢复正常,但错误不断重现。

我很确定它与HAProxy没有任何关系,因为卷到机器上的本地主机也会返回超时。

服务器上没有什么特别的东西(根据htop,4核心的CPU使用率从来没有超过10%,从8GB到大约只有1GB,loadavg一直在0.1以下)。

我将ulimit设置为65535。

nginx的configuration文件是:

user www-data www-data; worker_processes 1; worker_rlimit_nofile 20000; events { worker_connections 768; } http { passenger_root /opt/passenger/passenger-4.0.7; passenger_ruby /usr/bin/ruby1.8; include mime.types; default_type application/octet-stream; sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # Virtual Hosts include /opt/nginx/conf/sites-enabled/*; } 

nginx中的phusion位置是:

 server { charset utf-8; listen 3101; root /srv/ruby/code/current/public; passenger_enabled on; passenger_base_uri /; passenger_ruby /home/code/.rbenv/versions/1.9.3-p448/bin/ruby; passenger_min_instances 3; passenger_show_version_in_header off; passenger_friendly_error_pages off; } 

我玩过各种参数(worker_processes,worker_connections,worker_rlimit_nofile),但没有任何帮助。

还有什么build议?