环境信息: SpringBoot 项目,服务名是: pms, Nginx 代理的服务名是: pmsApi
异常配置
Nginx配置
# pms 前后端
server {
listen 6060;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
# 后台服务接口转发
location /pmsApi {
include uwsgi_params;
proxy_pass http://127.0.0.1:9526/pms;
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_buffer_size 1024k;
proxy_buffers 16 1024k;
proxy_busy_buffers_size 2048k;
proxy_temp_file_write_size 2048k;
}
}
Shiro 配置
访问 需要登录的接口 /admin/pro-order/pageQueryUseOrderRecord,未登录访问这个接口会跳转到 /xxx/xxx /unlogin 未登录接口
不要在意图片。截图的时候少打了一个/
但是没加任何处理 会出现 被重定向到 80端口去,端口 服务名缺失
重新配置
原Nginx proxy_set_header Host 加入 $server_port
# 后台服务接口转发
location /pmsApi {
# rewrite ^.+pms/?(.*)$ /$1 break;
include uwsgi_params;
proxy_pass http://127.0.0.1:9526/pms;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffer_size 1024k;
proxy_buffers 16 1024k;
proxy_busy_buffers_size 2048k;
proxy_temp_file_write_size 2048k;
}
再次访问
端口是有了,但是 服务名不对,应该是 pmsApi 才对,因为Nginx 6060端口配置的 后台服务名是 pmsApi, 而不是 pms
再加一个 pms 服务转发, 这个pms 根据自己的服务名更换 再加一个配置
location /pms {
# Shiro 未登录重定向配置
include uwsgi_params;
proxy_pass http://127.0.0.1:9526/pms;
proxy_set_header Host $host:$server_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_buffer_size 1024k;
proxy_buffers 16 1024k;
proxy_busy_buffers_size 2048k;
proxy_temp_file_write_size 2048k;
}
再次访问:
访问 6060/pms 已经转发过去
|