我正在尝试设置代理服务器,以便
proxy-server.com/app1 --> website1.com
proxy-server.com/app2 --> website2.com
- 不应重定向到实际的后端应用程序。用户只能看到
proxy-server.com/app[1/2]
URL。 - 所有静态资源都应能正常加载。例如,
/js/sample.js
app2 中的资源应从位置请求/app2/js/sample.js
- 当我执行操作(例如提交表单或导航到 app2 中的另一个页面)时,请求应该添加到前面,
/app2
以便代理到正确的地址
http {
upstream webapp1 {
server website1.com:443;
}
upstream webapp2 {
server website2.com:443;
}
server {
listen 80;
listen 443 ssl;
server_name proxy-server.com;
# certificate section
location /app1 {
proxy_pass https://webapp1/;
proxy_set_header Host website1.com;
}
location /app2 {
proxy_pass https://webapp2/;
proxy_set_header Host website1.com;
}
}
}
该配置仅修复了第 1 点,但我正在努力寻找上述其他两点的解决方案。我正在寻找一个干净的解决方案,只是提到我会尽量避免if
使用语句或sub_filter
模块 :)