nginx中proxy_pass到tomcat的session丟失

        好多事不本身去作確實不知道,隨便玩一玩就出了好多問題,雖然都不大,但卻都是必需要解決的。今天早上遇見的問題就是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。       

相關文章
相關標籤/搜索