Report this

What is the reason for this report?

Nginx 502 Bad Gateway and Node.JS app

Posted on March 18, 2014

Folks,

I’m trying to install a Node.JS application in a subfolder of a WordPress site running on Nginx, Varnish and php-fpm.

Any attempt to access the site gives a 502 Bad Gateway browser error and the following message in Nginx’s error log.

<pre> [error] 20247#0: *143 connect() failed (111: Connection refused) while connecting to upstream, client: 127.0.0.1, server: example.com, request: “GET /forum HTTP/1.1”, upstream: “http://127.0.0.1:4567/forum”, host: “example.com” </pre>

I’ve researched the cause of such error messages, but have yet to come up with a solution. It it helps, here’s my Nginx config:

<pre> server {

server_name example.com www.example.com;
  
root /home/public_html/;
listen 8080;
 
index index.html index.htm index.php;

include conf.d/drop;

    location / {
            
        try_files $uri $uri/ /index.php?q=$uri&$args;
    }

    location ~ \.php$ {
        fastcgi_buffers 8 256k;
        fastcgi_buffer_size 128k;
        fastcgi_intercept_errors on;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass unix:/var/run/php5-fpm.sock;


    }

    location ~* \.(css|js|png|jpg|jpeg|gif|ico)$ {
            expires 1d;
    }

Settings for proxying NodeBB forum installation. Added March 14 2014.

    location ^~ /forum {

    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;

    proxy_pass http://127.0.0.1:4567/forum;
    proxy_redirect off;

    # Socket.IO Support
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";

}

} </pre>



This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

These answers are provided by our Community. If you find them useful, show some love by clicking the heart. If you run into issues leave a comment, or add your own answer to help others.

With node/nginx proxy and ajax requests get 502:

I fixed this issue by simply stopping and starting pm2 and ensuring only 1 pm2 process was running.

you need run the node proyect: <br> <br>/home/test/nodejs/ <br> >node server.js <br> <br>Remember: nodejs need run in diferent port at nginx. <br>How to node: http://nodejs.org/

As you can see from the config, the Node.JS app is running on port 4567, which is different from the Nginx port, running on a www port. <br> <br>The Node.JS application is started using Forever - “forever start app.js”. <br> <br>The thing is, without Nginx, I can access the app using the IP/URL of the main site and the Node apps port, like this: http://example.com:4567. <br> <br>But not via Nginx.

The developer cloud

Scale up as you grow — whether you're running one virtual machine or ten thousand.

Get started for free

Sign up and get $200 in credit for your first 60 days with DigitalOcean.*

*This promotional offer applies to new accounts only.