NGINX Proxy Pass to NodeJS App: Returning 502 error

I'm trying to setup NGINX as the frontend of my NodeJS app, which is live on 127.0.0.1:3000, but i can't resolve this 502 error. NGINX is locally reachable at http://55.55.55.5/ or http://dev.example

dev.example (file in: /etc/nginx/sites-available and symlinked to sites-enabled)

upstream up_dev.example {
    server 127.0.0.1:3000;
}

server {
    listen 0.0.0.0:80;
    server_name dev.example example;
    access_log /var/log/nginx/dev.example.log;

    location / {
      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://up_dev.example/;
      proxy_redirect off;
    }
 }

error.log

2014/09/17 19:38:26 [error] 1679#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 55.55.55.1, server: , request: "GET / HTTP/1.1", upstream:$


It could also be SELinux that's preventing the connection being made as httpd_can_network_connect is off by default.

getsebool httpd_can_network_connect

Check if this is turned on. If not, turn it on by running

setsebool -P httpd_can_network_connect on

The -P means persistent changes so the new boolean will still be in effect even after a reboot.


Connection refused means that no software is listening to port 3000 on your server. You should check that Node.JS is running properly and that it is listening to port 3000.