And*_*ndy 3 ruby-on-rails passenger nginx ruby-on-rails-3 ruby-on-rails-3.1
我正在运行Nginx 1.0.6,Passenger 3.0.9,Rails 3.1.1,Ruby 1.9.在我的生产环境中,我在nginx_error.log文件中看到以下间歇性警告:
2011/11/22 14:44:40 [warn] 23288#0:*474上游响应被缓冲到临时文件/ opt/nginx/proxy_temp/2/00/0000000002,同时读取上游,客户端:69.172.88.178,服务器:www.memverse.com,请求:"GET/show_all_my_verses HTTP/1.1",上游:"passenger:unix:/ passenger_helper_server:",主持人:"www.memverse.com",推荐人:" http:// www. memverse.com/quick_add/7352 "
并且,不太常见的是,导致502 Bad Gateway的以下错误:
2011/11/21 15:35:20 [错误] 2118#0:*60762上游过早关闭连接,同时从上游读取响应头,客户端:74.125.44.84,服务器:www.memverse.com,请求:"GET/blogs /饲料/ 9 HTTP/1.1" ,上游: "乘客:UNIX:/ passenger_helper_server:",主机: "www.memverse.com"
我已经浏览了Passenger和Nginx文档并调整了我的nginx.conf文件中的几乎所有设置,但都无济于事.我希望有人能够至少指出我正确的方向.
下面是我的nginx.conf:
user root;
worker_processes 4;
error_log logs/error.log error; # debug | info | notice | warn | error | crit
pid logs/nginx.pid;
events {
worker_connections 1024; # max_clients = worker_processes * worker_connections
}
http {
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 logs/access.log main;
sendfile on;
keepalive_timeout 65;
# Configure Passenger
passenger_root /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.9;
passenger_ruby /usr/local/bin/ruby;
passenger_log_level 1;
passenger_debug_log_file /home/avitus/logs/passenger.log;
rails_framework_spawner_idle_time 0;
rails_app_spawner_idle_time 0;
passenger_pool_idle_time 0;
passenger_use_global_queue on;
passenger_max_pool_size 15;
server {
listen 80;
server_name www.pariday.com pariday.com;
root /home/avitus/pariday.com/current/public;
access_log /home/avitus/pariday.com/current/log/nginx_access.log main;
error_log /home/avitus/pariday.com/current/log/nginx_error.log info;
passenger_enabled on;
}
server {
listen 80;
server_name www.assetcorrelation.com assetcorrelation.com;
root /home/avitus/assetcorrelation.com/current/public;
access_log /home/avitus/assetcorrelation.com/current/log/nginx_access.log main;
error_log /home/avitus/assetcorrelation.com/current/log/nginx_error.log info;
passenger_enabled on;
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我已经对这个问题感到难过了几天,所以任何帮助都会非常感激.说实话,如果有人能解释这两个警告/错误甚至意味着它会有所帮助.
第一个问题("上游响应被缓冲到临时文件")是由一些内容很多的页面引起的,并通过增加缓冲区大小来解决,如下所示:
proxy_buffers 8 16k;
proxy_buffer_size 32k;
passenger_buffers 8 16k;
passenger_buffer_size 32k;
Run Code Online (Sandbox Code Playgroud)
第二个问题('上游过早关闭连接,同时从上游读取响应头')通过增加服务器上的内存并将Passenger切换到保守的生成模式来解决.(它似乎与使用试图运行后台作业的旧Ruby宝石密切相关.)
| 归档时间: |
|
| 查看次数: |
10823 次 |
| 最近记录: |