今天在部署公司項目的時候碰到一個問題
項目地址是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問題解決
