nginx entraîne une erreur 504, mais mon application fonctionne toujours

Donc, nous utilisons Node.js pour alimenter CompassionPit.com, et tout est offert par nginx.

nginx lance un timeout d'attente de la passerelle 504

La chose intéressante, cependant, c'est que si je navigue vers http://compassionpit.com/index.html , je peux accéder à la page (je crois que la requête est apathée via l'application Node qui fonctionne sur le port 8000).

Et http://compassionpit.com/blog/ fonctionne.

Mais http://compassionpit.com/ est en panne. 🙁

Aidez-moi?

root@li70-243:~# cat /etc/nginx/sites-enabled/blog server { listn 80 default; # your server's public IP address server_name compassionpit.com; index index.html; location /blog/wp-content/ { alias /opt/blog/wp-content/; } location /blog/ { root /opt/; include fastcgi_params; fastcgi_pass localhost:8080; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } location / { alias /opt/chat/static/; if (-f $request_filename) { break; } if (!-f $request_filename) { proxy_pass http://127.0.0.1:8000; } } } 

 root@li70-243:~# cat /etc/nginx/nginx.conf user www-data; worker_processes 1; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; events { worker_connections 1024; # multi_accept on; } http { include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; tcp_nodelay on; gzip on; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; include /etc/nginx/conf.d/*.conf; include /etc/nginx/sites-enabled/*; } 

 root@li70-243:~# free total used free shared buffers cached Mem: 509868 394168 115700 0 43540 215296 -/+ buffers/cache: 135332 374536 Swap: 524284 0 524284 

Essayez ceci au lieu de votre location / :

 location / { alias /opt/chat/static/; try_files $uri @nodejs; } location @nodejs { proxy_pass http://127.0.0.1:8000; } 

Et vérifiez toujours error.log , c'est votre meilleur ami.

J'ai également découvert que csf sur Linux interdit l'exécutable du noeud pour de nombreuses connections. La solution pour cela serait d'append le nœud pid au csf.pignore , comme ceci (j'ai également inclus le path PM2):

... exe:/usr/local/bin/node exe:/root/npm/lib/node_modules/pm2/bin/pm2