这是问题所在:
主机具有在不同端口上运行的多个docker应用程序,例如. App1 @ 3001,App2 @ 3002 … 3100等
现在我想以这种格式访问http://hostname.com/app1,http://hostname.com/app2 ..
为此,我在主机上运行Nginx,以根据子uri将请求代理到正确的端口
location = /app1 {
proxy_redirect http://hostname:3001/;
include /etc/Nginx/proxy_params;
}
location ^~ /app1 {
proxy_redirect http://hostname:3001/app1;
include /etc/Nginx/proxy_params;
}
但是,当网站的子uri更改或网站重定向时,这不起作用.
例如:
If I visit the site at hostname:3001 -> I can see the site
If I visit the site at http://hostname.com/app1 -> I can see the site
If the site page is at hostname:3001/static/index.html then when i access it as http://hostname.com/app1 the page changes to http://hostname.com/static/index.html -> I get 404.
最佳答案
你想要的服务器{}阻止内部:
location /app1 {
rewrite ^/app1(.*) /$1 break;
proxy_pass http://hostname:3001/;
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;
}
location /app2 {
rewrite ^/app2(.*) /$1 break;
proxy_pass http://hostname:3002/;
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;
}
这里的重写规则将正确的uris传递给端口
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。