Linux
nodejs伺服器和nginx衝突
我在數字海洋水滴上執行 nodejs 應用程序,我正在嘗試配置 nginx,以便它代理我的應用程序正在執行的埠的埠,
這是我在可用站點上的預設文件中的內容
server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /prwrite; index index.html index.htm app.js; # Make site accessible from http://localhost/ server_name http://www.xxx.xxxxx.com; location / { proxy_pass http://www.xxx.xxxx.com:3000/; proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests #location /RequestDenied { # proxy_pass http://127.0.0.1:8080; #} error_page 404 /404.html;
}
更改
listen 80 default_server;
為 3000 後,我的節點應用程序根本無法啟動但是使用給定的配置,如果我去http://XXX.XXXXXX.com:3000應用程序工作正常
在我的頁面上給了我很多 404 not found 錯誤
我怎樣才能解決這個問題 ?
當 node.js 和 nginx 都被告知使用埠 3000 時,您的應用程序無法啟動,因為只有一個應用程序可以綁定到該埠(考慮到它們都試圖綁定到 INADDR_ANY,即 0.0.0.0)。
您可以通過在 nginx 配置中添加代理位置來解決這種情況,例如
location /socket.io/ {
(或更適合您的設置)指向在埠 3000 上執行的 node.js 和proxy_pass
.