2017-02-22 212 views
0

我试图设置一个Nginx作为反向代理来访问运行在同一台服务器上的多个NodeJS应用程序。Nginx无法监听端口

我有PM2运行我的NodeJS应用程序,这一切似乎很动听:

enter image description here

我的NodeJS应用程序是一个简单的NodeJS应用与快递发电机产生的,所以它应该是在端口上运行3000

我还建立了我的Nginx有以下配置

server { 
    listen 1004; 

    server_name pumadashboard.com; 

    location/{ 
     proxy_pass http://127.0.0.1:3000; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 
} 

然而,当我蜷缩127.0.0。 1:1004我从Nginx得到一个badGateway错误。我也无法从我的本地网络上的任何地方访问pumadashboard.com,它只会一直加载到超时。

+0

标题有误导之嫌。如果你从nginx得到错误,它肯定会听到端口。检查nginx的error.log –

回答

0

如果你这样做,你能得到什么:

curl http://locahost:3000 

这应该给一个回应和喜欢,如果应用程序启动正常,你就明白了。

这nginx的配置对我的作品

upstream pumadashboard.com { 
    server 127.0.0.1:3010; 
} 

server { 
    listen 80; 
    server_name pumadashboard.com; 
    root <path to your node application>; 

    access_log /var/log/nginx/your-access.access.log; 
    error_log /var/log/nginx/your-error.error.log; 

    add_header X-Frame-Options DENY; 
    add_header X-Content-Type-Options nosniff; 

    location/{ 
     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_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection "upgrade"; 
     proxy_max_temp_file_size 0; 
     proxy_pass http://pumadashboard.com/; 
     proxy_redirect off; 
     proxy_read_timeout 240s; 
    } 
} 
+0

不起作用,所有这一切发生的是,如果我现在访问我的网络服务器与我的浏览器中的IP地址,而不指定端口,就像192.168.0.100它转到应用程序,但URL不起作用。 –

+0

第一步工作。事实上,您可以使用ip查看您的应用,而无需指定端口,这意味着nginx会将流量转发给您的应用。关于域是另一个问题,可能是你的提供者有一些错误。你使用aws route53吗? –

0

尝试增加

proxy_set_header X-Forwarded-Host $http_host; 
proxy_set_header X-Real-IP $remote_addr; 
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
proxy_set_header X-Forwarded-Port 80; 

location /

+0

不起作用:/ –