Spring + Spring Security + Vue 前后端分离项目,点击用户退出,Nginx代理端口重定向端口错误
虾米哥
阅读:699
2021-03-31 12:54:55
评论:0
前提条件:Spring + Spring Security + Vue 前后端分离项目
实现操作情况:用户点击退出按钮,调用后台接口执行spring security 默认退出方法(/logout)
后台源码:
@RequestMapping(value = "/invalidate", method = { RequestMethod.POST, RequestMethod.GET })
@ApiOperation(value = "注销")
public String logoutPage(HttpServletRequest request, HttpServletResponse response) {
securityUtils.cleanUserInfo();
return "redirect:/logout";
}
项目部署实际情况是:nginx 使用8084 端口 代理后台(Tomcat)服务8815 端口
nginx 配置
server {
listen 8084;
server_name 192.168.1.73 localhost;
server_name_in_redirect off;
#charset koi8-r;
#access_log logs/host.access.log main;
rewrite ^(.*)(?i)jsessionid(.*)$ / redirect;
location / {
root E:/nginx-1.18.0/zrzyj;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
location ~/erms {
#Proxy Settings
add_header Access-Control-Allow-Origin $http_origin;
add_header Access-Control-Allow-Headers *;
add_header Access-Control-Allow-Methods *;
proxy_redirect off;
proxy_set_header Host $host:$proxy_port;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
proxy_max_temp_file_size 0;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_pass http://192.168.1.73:8815;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
每次请求的退出接口是:http://localhost:8084/****,导出项目用户无法正常退出 。
问题解决:经过google 后,发现是我的代理头信息配置错误,代理头信息应该配置为:
正确:
proxy_set_header Host $host:$server_port;
错误
proxy_set_header Host $host:$proxy_port;
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。