【问题标题】:NGINX Multiple Sites on Same Host同一主机上的 NGINX 多个站点
【发布时间】:2019-12-21 10:22:58
【问题描述】:

我对 Nginx 还很陌生。当我连接到我的服务器时,我希望在同一主机上拥有多个站点。每个站点都是一个单独的 docker 容器,由 Nginx 映像作为服务器,为 Angular 应用程序提供服务。我正在使用代理通行证,因为我们最终将利用负载平衡器功能。

例如,当我转到<host name>/teamsite 时,它应该是上游服务器http://teamsite 的代理。

以下代码仅使用 1 个站点即可完美运行,导航到 .

upstream teamsite {
    server localhost:8200;
}

server {

    listen 80;
    location / {

        proxy_pass          http://teamsite;
        proxy_redirect      off;

        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-Host $server_name;

        gzip on;
        gzip_types          text/plain application/xml application/javascript;
        gzip_proxied        no-cache no-store private expired auth;
        gzip_min_length     1000;

    }

}

当我尝试添加 /teamsite 时,它​​停止工作。

例子:

upstream teamsite {
    server localhost:8200;
}

server {

    listen 80;
    location /teamsite {

        proxy_pass          http://teamsite;
        proxy_redirect      off;

        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-Host $server_name;

        gzip on;
        gzip_types          text/plain application/xml application/javascript;
        gzip_proxied        no-cache no-store private expired auth;
        gzip_min_length     1000;

    }

}

看起来 Nginx 正在寻找 localhost:8200/teamsite/index.html 中的文件,而不是 localhost:8200/index.html。任何想法为什么将额外的/teamsite/ 添加到上游服务器?

感谢您的帮助。

编辑:

我确实尝试了以下配置:

server {

    listen 80;
    location /teamsite/ {

        proxy_pass          http://localhost:8200/;
        }
}

现在当连接到<host name>/teamsite 时,反向代理会抛出连接被拒绝的错误。 Nginx 的网络服务器版本未显示任何连接或错误。我可以从服务器和我的本地机器连接到网络服务器版本的 Nginx。

【问题讨论】:

    标签: nginx nginx-location nginx-reverse-proxy nginx-config


    【解决方案1】:

    此答案https://serverfault.com/a/725433 显示了您要执行的操作的正确语法,并显示了 url 重写的工作原理。

    【讨论】:

    • 是的,所以我试过了,反向代理现在在尝试连接到 Web 服务器时会抛出连接被拒绝错误。从日志中请求确实看起来是正确的。 Nginx Web 服务器日志不显示任何错误/请求。我将直接从本地机器上的 Nginx Web 服务器中提取文件。列出的新配置现在在原始帖子中。
    猜你喜欢
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-26
    • 1970-01-01
    相关资源
    最近更新 更多