Passager & Nginx => 502 Bad Gateway Erreurs dans la Production
Je suis en cours d'exécution Nginx 1.0.6, Passager 3.0.9, Rails 3.1.1, Ruby 1.9. Dans mon environnement de production, je suis de voir la suite intermittent mises en garde dans mon nginx_error.fichier journal:
2011/11/22 14:44:40 [avertir] 23288#0: *474 en amont de la réponse est
tampon dans un fichier temporaire /opt/nginx/proxy_temp/2/00/0000000002
lors de la lecture en amont, client: 69.172.88.178, serveur:
www.memverse.com, demande: "GET /show_all_my_verses HTTP/1.1",
en amont: "passager:unix:/passenger_helper_server:", de l'hôte:
"www.memverse.com", parrain: "http://www.memverse.com/quick_add/7352"
et, moins fréquemment, l'erreur suivante qui conduit à un 502 Bad Gateway:
2011/11/21 15:35:20 [erreur] 2118#0: *60762 en amont de la fermeture prématurée
connexion tout en lisant l'en-tête de réponse à partir de l'amont, du client:
74.125.44.84, serveur: www.memverse.com, demande: "GET /blogs/feed/9 HTTP/1.1", en amont: "passager:unix:/passenger_helper_server:", de l'hôte:
"www.memverse.com"
J'ai rampé par le Passager et le Nginx documentation et ont peaufiné à presque chaque paramètre dans mon nginx.fichier conf mais en vain. J'espère que quelqu'un peut au moins me diriger dans la bonne direction.
Ci-dessous est mon 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;
}
}
}
J'ai été perplexe sur ce problème depuis quelques jours maintenant, de sorte que toute aide sera très appréciée. Pour être honnête, si quelqu'un peut expliquer ce que ces deux avertissements/erreurs même dire qu'il va être utile.
OriginalL'auteur Andy | 2011-11-22
Vous devez vous connecter pour publier un commentaire.
Le premier problème ("en amont de la réponse est tamponné à un fichier temporaire") a été causé par quelques pages avec beaucoup de contenu et a été résolu par l'augmentation de la taille de la mémoire tampon comme suit:
Le deuxième problème (qui, en amont, la fermeture prématurée de la connexion lors de la lecture de la réponse de l'en-tête de l'amont") a été résolu par l'augmentation de la mémoire sur le serveur de commutation et Passager conservateur frayer mode. (Il semble avoir été étroitement liée à l'utilisation d'un ancien Ruby gem qui essayait d'exécuter des tâches en arrière-plan.)
OriginalL'auteur Andy