web-dev-qa-db-ja.com

nginxは504エラーにつながりますが、私のアプリはまだ実行中です

そのため、Node.jsを使用してCompassionPit.comに電力を供給しており、すべてnginxによって提供されています。

nginxは504ゲートウェイタイムアウトをスローしています

ただし、興味深いのは、 http://compassionpit.com/index.html に移動すると、ページにアクセスできることです(要求されたものはNodeポート8000​​で実行されているアプリ)。

そして http://compassionpit.com/blog/ は機能しています。

しかし http://compassionpit.com/ はダウンしています。 :(

助けて?

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
3
Zack Burt

location /の代わりにこれを試してください:

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

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

そして、常にerror.logを調べてください、それはあなたの親友です。

2

また、Linux上のcsfが、多くの接続で実行可能なノードを禁止していることもわかりました。これに対する解決策は、次のようにノードpidをcsf.pignoreに追加することです(PM2パスも含めました)。

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

0
Marius Stuparu