【问题标题】:Nginx proxy config problems for Node.js appNode.js 应用程序的 Nginx 代理配置问题
【发布时间】:2024-04-21 19:00:02
【问题描述】:

我几乎可以肯定这只是我的无知,并希望这很容易解决,但基本上 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 文件,因为我在我看到的 localhost 服务器的行上方已经到了。)

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

【问题讨论】:

    标签: node.js nginx proxy


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      这都是发行版和软件包的问题,​​而不是 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 并确保您的配置位于包含的文件夹中,至于配置本身,它似乎应该可以正常工作。

      【讨论】:

      • 谢谢 - 这实际上是我找出 vhosts 文件夹及其文件的方式,是我需要进行编辑的地方。
      最近更新 更多