为两个节点应用程序配置 nginx,一个在子域上

Configure nginx for two node apps, with one on a subdomain

问题

我正在尝试设置 nginx,以便我可以通过端口 3000 上的节点 Web 应用程序拥有我的域 domain.com 运行,以及子域 dev.domain.com 运行 通过端口 3001 上的第二个节点 Web 应用程序。当我 运行 此配置 domain.com 连接到正确的端口时,但是 dev.domain.com 只是给出一个页面,说服务器不能达到。

编辑: 如果我转到 IP_ADDRESS:3000,我会得到与 domain.com 相同的内容,但如果我转到 IP_ADDRESS:3001,我会得到应该在 dev.domain.com 的内容。基于此,应用程序似乎 运行 在正确的端口上运行良好,我只是没有正确路由子域。

代码

我直接编辑了 /etc/nginx/sites-available/default 所以它有:

server {
    listen 80 default_server;
    server_name domain domain.com www.domain.com;
    location / {
        proxy_pass http://127.0.0.1:3000;
    }
}
server {
    listen 80;
    server_name dev.domain dev.domain.com www.dev.domain.com;
    location / {
        proxy_pass http://127.0.0.1:3001;
    }
}

除该文件外,其他所有内容都是全新安装

我的逻辑

我是 nginx 的新手,但这似乎对 domain.com 的任何请求都会发送到端口 3000,对 dev.domain.com 的请求会发送到 3001.

对于我目前所做的任何帮助或批评,我们将不胜感激!

以上设置工作正常。我的问题是 DNS 记录 - 我添加了一条 A 记录,指向 dev.domain.com 到我 运行 节点应用所在的服务器的 IP 地址。

遇到同样的问题并通过从 root 用户创建文件解决了它:

drwxr-xr-x   6 gitlab-runner gitlab-runner  4096 Sep 12 06:56 .
drwxr-xr-x   4 root          root           4096 Sep 12 06:57 ..
-rw-r--r--   1 root          root             11 Sep 12 06:54 .env
-rw-rw-r--   1 gitlab-runner gitlab-runner   599 Sep 12 06:56 app.js

如果您使用 rm -Rf 命令从 gitlab-runner 删除此文件夹中的所有文件和目录,它将删除除 .env

之外的所有文件

这只是快速解决方法,可能会有用。