我有一台带有下一个组件的服务器:
我正在此服务器上运行Ruby on Rails应用程序。 现在在我的Nginx的error.log中,我发现这个错误会定期弹出。
[ pid=12615 thr=3065355072 file=ext/nginx/HelperAgent.cpp:923 time=2012-10-22 09:31:03.929 ]: Couldn't forward the HTTP response back to the HTTP client: It seems the user clicked on the 'Stop' button in his browser.
有人知道这个问题的来源吗? 这是我的Nginx conf:
user deployer staff;
worker_processes 5;
error_log /var/log/nginx/error.log notice;
pid /var/log/nginx/nginx.pid;
events {
worker_connections 2048;
multi_accept on;
}
http {
passenger_root /var/lib/gems/1.9.1/gems/passenger-3.0.15;
passenger_ruby /usr/bin/ruby1.9.1;
include mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
keepalive_timeout 65;
server {
passenger_enabled on;
server_name xxx.com;
listen 80;
rails_env production;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
root /var/rails/alfa_paints/current/public;
error_page 404 /404.html;
error_page 500 502 503 504 /500.html;
}
}
答案 0 :(得分:1)
您的配置看起来很好。我认为错误正是它所说的:最终用户点击了浏览器上的“停止”,关闭了与服务器的TCP连接。应用程序堆栈中的所有内容都可能按设计运行。除非您有最终用户抱怨该应用程序无法正常工作,否则这是最可能的解释。
那就是说,如果你经常看到这个错误,你可能会问的下一个问题是“为什么用户会如此多地点击停止按钮”?也许你的应用程序的一部分花了很长时间来响应用户,你需要加快速度或添加某种进度指示器。您可以回顾一下您的日志,看看是否可以将错误与特定类型的请求相关联。
答案 1 :(得分:0)
另一种情况可能就像这个nginx Timeout serving large requests
要解决此问题,您可以尝试以下方法:
gem install passenger #use the lastest passenger
passenger-config --root # get passenger_root_path
#download the lastest nginx file and cd nginx-X.X.X
./configure --with-http_ssl_module --with-http_gzip_static_module --with-cc-opt=-Wno-error --add-module=$passenger_root_path/ext/nginx
make
make install
之后,配置nginx.conf并重新启动,你会发现一切正常!