今天在部署公司项目的时候碰到一个问题
项目地址是xxx.xx.xx.122:7480
项目A后台请求地址为xxx.xx.xx.123:8080/data-sso
开始nginx配置是
server {
listen 7480;
server_name localhost; location /data-sso {
proxy_pass http://xxx.xx.xx.123:8080/data-sso;
proxy_cache_methods POST;
}
}
然后再线上登录页面卡住了 一步步查找原因
1.登录页面进不去的原因是 登录成功了 但是后台存储的cookie信息丢失了
2.通过查找 发现后台把cookie信息存储到http://xxx.xx.xx.123:8080中,而前端项目地址是xxx.xx.xx.122:7480 ,所以存在cookie跨域 丢失问题
知道原因了就很好解决了通过度娘才知道需要在代理设置中设置原始的主机地址
最后配置改为
server {
listen 7480;
server_name localhost; location /data-sso {
proxy_set_header Host $host;
proxy_set_header X-Real-Ip $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://xxx.xx.xx.123:8080/data-sso;
proxy_cache_methods POST;
}
}
然后线上测试 前端能拿到cookie问题解决