Nginx 启用多个站点会破坏 nginx

Nginx 启用多个站点会破坏 nginx

我的 Nginx 服务器出现了一个奇怪的问题。我使用 Nginx 作为内部运行在服务器上的多个服务的反向代理。

这就是我想要实现的目标:

app1.mydomain.com ---                                         --- server 1: 10.0.0.2
                      \              10.0.0.1               / 
                       |--- nginx reverse proxy server --- |
                      /                                     \
app2.mydomain.com ---                                         --- server 2: 10.0.0.3

因此,我为 app1 添加了第一个,在我的域名提供商中添加了 DNS 设置,一切都运行正常。我非常兴奋,所以我选择了第二个,然后一切都崩溃了。我运行了nginx -t,一切都测试正常。Nginx 服务器仍在运行,没有错误,但我失去了查看 app1.mydomain.com 的能力

除了 server_name 和 proxy_pass 之外,配置基本相同

文件:/etc/nginx/sites-available/app1.mydomain.com

server {
    server_name app1.mydomain.com;

    location / {
        client_max_body_size 512M;
        proxy_pass http://10.0.0.2;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

}

文件:/etc/nginx/sites-available/app2.mydomain.com

server {
    server_name app2.mydomain.com;

    location / {
        client_max_body_size 512M;
        proxy_pass http://10.0.0.3;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }

}

我这样做的方式是将每个配置添加到 sites-available 中的自己的文件中,然后执行sudo ln -s /etc/nginx/sites-available/app1.mydomain.com /etc/nginx/sites-enabled/

这对于 app1 来说非常有效,但是对 app2 执行此操作后,我就无法访问 app1,并且 app2 也不会出现。

在我的路由器中,我将端口 80 和 443 转发到反向代理服务器 10.0.0.1,这些是我路由器上的唯一规则。在我的域名提供商上,我有指向正确 IP 的正确 A 记录。我能够验证应用程序 1 的所有功能是否正常,但在为应用程序 2 执行符号链接以进入启用站点并重新启动 nginx 后,我失去了对所有内容的访问权限。

知道发生了什么吗?谢谢!

答案1

@symcbean 实际上指出了答案。我发布的配置不完整。对于 app1,我使用了显示的确切配置(不知何故起作用了),然后运行了 certbot,它将 TLS 配置和 listen 变量添加到配置中。

然后我添加了应用程序 2 的配置(正如所示),并且在服务器上没有出现任何错误,但是当我尝试访问应用程序 1 或应用程序 2 时开始出现连接被拒绝错误。添加监听配置并重新启动 nginx 后,一切都开始正常工作。

谢谢!

相关内容