【发布时间】: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