NGINX在同一主机上的多个站点

问题描述 投票:0回答:1

我对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的Web服务器版本。

nginx nginx-location nginx-reverse-proxy nginx-config
1个回答
0
投票

此答案https://serverfault.com/a/725433显示您尝试执行的操作的正确语法,并显示url重写的工作方式。

© www.soinside.com 2019 - 2024. All rights reserved.