我在配置 nginx proxy_pass 时遇到问题。有这样一种情况:
- 服务器 1 - xx.xx.xx.xx - 代理服务器
- 带有应用程序 A 的服务器 2 - yy.yy.yy.yy
- 带有应用程序 B 的服务器 3 - zz.zz.zz.zz
配置如下:
server {
listen 80; ## listen for ipv4; this line is default and implied
location /app_a {
rewrite /app_a/(.*)$ /$1 break;
access_log off;
proxy_pass http://yy.yy.yy.yy/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header Client-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Upstream $remote_addr;
}
location /app_b {
rewrite /app_b/(.*)$ /$1 break;
access_log off;
proxy_pass http://zz.zz.zz.zz;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_set_header Client-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Upstream $remote_addr;
}
}
然后,当我使用浏览器 xx.xx.xx.xx/app_a 或 xx.xx.xx.xx/app_b 时,没有加载静态文件(404)并且所有链接都没有应用程序前缀(xx.xx.xx.xx /登录)
我如何配置 nginx 使链接显示如下:
- xx.xx.xx.xx/app_a/login
- xx.xx.xx.xx/app_b/login