好多事不本身去作確實不知道,隨便玩一玩就出了好多問題,雖然都不大,但卻都是必需要解決的。今天早上遇見的問題就是nginx中proxy_pass到tomcat的session丟失了。nginx
以前也沒測試過使用nginx反向代理後登錄的狀況,結果今天就湊巧了。經調試發現是request請求變成了多個,而且session每次也都不一致,感受就像是每次都在用不一樣的瀏覽器訪問,得出結論:確定是session丟失了!瀏覽器
顯而易見的就是問題確定出在了nginx上面,由於以前單獨使用tomcat都是沒有問題的。tomcat
以前的配置以下:cookie
upstream backend {session
#ip_hash;
server localhost:8080;
}
server {
listen 80;
server_name my;
location / {
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_buffering on;測試
proxy_pass http://backend/xyan/;
}代理
修改後以下:調試
upstream backend {server
#ip_hash;
server localhost:8080;
}
server {
listen 80;
server_name my;
location / {
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_buffering on;ip
proxy_pass http://backend/xyan/;
proxy_cookie_path /xyan/ /;
proxy_set_header Cookie $http_cookie;
}
其實也就是每次都保留cookie。