我对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服务器版本。
此答案https://serverfault.com/a/725433显示您尝试执行的操作的正确语法,并显示url重写的工作方式。