日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

Nginx+Tomcat出现session丢失问题

發布時間:2025/3/21 Nginx 69 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Nginx+Tomcat出现session丢失问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

Nginx作為一個強大的Web服務器,有很強的功能。在Nginx+Tomcat是Java Web動靜分離的很好模型。但是,今天在配置過程中,遇到了一個問題,就是無法登錄。由于之前在配置Apache的過程中,遇到過類似的問題,所以我很快確定了是由于sessionId在cookies中引起。

那么,我們如何在Nginx中配置,以避免這樣的事情呢?我是通過如下代碼來解決的。

場景描述一下:

我有一個二級域名mvn.domain.com,以及一個web程序,部署到我的服務器中,訪問地址為:http://localhost:8081/nexus,通過我的域名,我希望反向代理到我的本地地址中。由于,我在部署本地應用的時候,不是鏈接到根目錄(即root),導致我的應用程序的sessionId存儲在/nexus的path下。而當我成功后,mvn.domain.com中,找不到對應的sessionId信息,導致會話失效。

解決方法一:

域名使用mvn.domain.com/nexus,反向代理到http://localhost:8081/nexus,可以解決如上問題。配置如下:

location /nexus/ {proxy_pass http://localhost:8081/nexus/;proxy_redirect off;proxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Cookie $http_cookie;chunked_transfer_encoding off;}location / {proxy_pass http://localhost:8081/nexus/;proxy_redirect http://localhost:8081/ http://mvn.domain.com/;}



解決方法二,

? ? ? ? location / {proxy_pass ? ?http://localhost:8081/nexus/;proxy_redirect off;proxy_set_header ? ? ? ?Host ? ?$http_host;proxy_set_header ? ? ? ?X-Real-IP ? ? ? $remote_addr;proxy_set_header ? ? ? ?X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header ? Cookie $http_cookie; ? ? ? ? ? ? ? ? rewrite ^/nexus/(.*)$ /$1 last;proxy_cookie_path /nexus /;chunked_transfer_encoding ? ? ? off;}

說明:
1. 通過proxy_pass 來確定對應目錄的跳轉
2. 在多層代理中,填充Header請求頭(proxy_set_header)
3. 將應用中訪問的nexus路徑rewrite到根路徑下。
4. 將cookie_path為/nexus設置到根路徑下。



轉載于:https://my.oschina.net/u/161336/blog/317714

總結

以上是生活随笔為你收集整理的Nginx+Tomcat出现session丢失问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。