Node.js 应用程序的 Nginx 代理配置问题

Nginx proxy config problems for Node.js app

我几乎可以肯定这只是我的无知,并希望这是一个简单的修复,但基本上 mydomain.com:3000 提供正确的内容,但 mydomain.com 没有。这是我的 nginx.conf.default 文件的内容:

upstream mydomain {
    server 127.0.0.1:3000;
    keepalive 8;
}

server {
    listen       0.0.0.0:80;
    server_name  mydomain.com www.mydomain.com;

    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://mydomain/;
        proxy_redirect off;
    }
}

我一直在关注这篇文章,但无法弄清楚我的错误在哪里: http://dailyjs.com/2010/03/15/hosting-nodejs-apps/

(注意:我相信我安装的 nginx 与此不同,因为没有可用的站点文件夹。相反,我正在编辑 nginx.conf.default 文件,因为我在我这里有。)

基本上,我想要的是能够访问 mydomain.com 来加载内容,而不是 mydomain.com:3000.

在较新的 NginX 安装中,有一个名为 vhosts 的子文件夹。虚拟主机配置数据需要放在这个文件夹中。如果您使用 UI 添加域到 cPanel,它会自动创建一个虚拟主机文件。

这完全是发行版和软件包的问题,​​而不是 nginx 版本,I've explained this in a different answer before,主要且唯一重要的文件是 nginx.conf,如果您检查该文件,您就会知道哪些文件夹很重要什么不,例如 debian 发行版在他们的配置中添加这一行

include /etc/nginx/sites-enabled/*;

以便自动包含 sites-enabled 文件夹中的所有文件,
Redhat 发行版仅使用此行

include /etc/nginx/conf.d/*.conf;

顺便说一下,它仍然包含在 debian 分布式配置中
这意味着只考虑 /etc/nginx/conf.d 内的文件,并且它们必须以 .conf

结尾

只需检查您的 nginx.conf 并确保您的配置在包含的文件夹中,至于它自己的配置,它似乎应该工作正常。