我按照数字海洋教程将我的 node.js 应用程序部署到 VPS 上。一切正常,但不是从 myDomain.com 访问应用程序,而是只能通过 myDomain.com:3700 访问。myDomain.com 仅显示“成功!虚拟主机已设置!”
/etc/nginx.sites-available/default:
server {
listen 3700;
server_name myDomain.com;
location / {
proxy_pass http://127.0.0.1;
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;
}
}
奇怪的是,如果我将其更改为:
server {
listen 80;
server_name myDomain.com;
location / {
proxy_pass http://127.0.0.1:3700;
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;
}
}
并输入 sudo nginx -s reload,没有任何变化。
在我的节点应用程序中,我有:
...
var port = 3700;
...
答案1
您收到的有关成功设置的消息来自 Apache Web 服务器,该服务器已在端口 80 上运行。在您的情况下,Nginx 实际上无法绑定到端口 80。
我不太清楚您如何设置 node.js 以及 Apache 是否应该发挥作用,但如果不需要 apache2,则必须删除它,或者将其重新配置为在其他端口上运行。