4 votes

nginx conduit à une erreur 504, mais mon application continue de fonctionner

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

nginx envoie un message d'erreur 504 Gateway Time-out

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

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

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

Aide ?

root@li70-243:~# cat /etc/nginx/sites-enabled/blog
server {
    listen       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

2voto

Dan Points 205

Essayez ceci à la place de votre location / :

location / {
    alias /opt/chat/static/;
    try_files $uri @nodejs;
}

location @nodejs {
    proxy_pass  http://127.0.0.1:8000;
}

Et toujours inspecter error.log c'est votre meilleur ami.

0voto

Marius Stuparu Points 111

J'ai également découvert que csf sous Linux bannissait l'exécutable node pour de nombreuses connexions. La solution à ce problème serait d'ajouter le pid du noeud au fichier csf.pignore comme ceci (j'ai également inclus le chemin PM2) :

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X