nginx配置应用路径
(2022-04-14 22:26:48)
标签:
nginx |
分类: 服务器 |
问题:nginx反向代理web服务器时,web服务器发起302请求时候,nginx会自动转换请求路径(部署在一台服务器就是自动转换端口号);比如:nginx端口70,web服务7070,web服务发起重定向到登录页时候,回给nginx是7070,nginx收到7070后自动转为70;然后客户端浏览器访问70时候,nginx反向代理到7070;
#web服务监听端口
listen
70;
server_name localhost;
#charset koi8-r;
#access_log
logs/host.access.log main;
location / {
root html/xmgl;
index index.html index.htm;
try_files $uri $uri/
/index.html;
#重定向/admin到/xmgl/admin
rewrite
^/(admin.*)$ /xmgl/$1 permanent;
}
...
但,当客户端请求路径/aaa/index,web服务返回/admin/login时候,nginx发现两个路径不匹配,就直接返回7070/admin/login的重定向,这样系统会报错;
所以,结论是每个应用建议加一个根路径,这样可以保证nginx能够正确解析转换web服务器的路径;
参考
server {
#后端服务映射(必须一个应用对应一个路径,否则一个应用使用多个路径遇到302跳转路径转换会有问题)
location /xmgl {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#web服务器重定向使用X-Forwarded过来的参数进行转换
proxy_pass http://localhost:8081/xmgl;
}