亚洲视频二区_亚洲欧洲日本天天堂在线观看_日韩一区二区在线观看_中文字幕不卡一区

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.430618.com 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

HTTPS 請(qǐng)求跳轉(zhuǎn)

如下面的配置:

location /test {proxy_pass http://www.baidu.com/;

在訪問 URI 為 /test 時(shí)會(huì)跳轉(zhuǎn)到百度,但此時(shí)瀏覽器中的 URL 也會(huì)發(fā)生變化。

這是因?yàn)椋合?http://www.baidu.com/ 發(fā)送請(qǐng)求后, Nginx 返回的是一個(gè)跳轉(zhuǎn)的響應(yīng)。

此后, 客戶端會(huì)重新向 https://www.baidu.com/ 發(fā)送請(qǐng)求(此過程不再經(jīng)歷 Nginx)。

所以,最終瀏覽器發(fā)生了跳轉(zhuǎn), 而非 Nginx 的負(fù)載均衡。

問題解決

將配置中的 http 改為 https 即可。

session 一致性

在使用 Nginx 做反向代理時(shí),如果后端服務(wù)器是 Tomcat 等動(dòng)態(tài)服務(wù)器,則可能會(huì)出現(xiàn) Session 一致性問題。

即: 無法確保同一個(gè) Session 一定對(duì)應(yīng)同一個(gè) Server;

配置網(wǎng)絡(luò)

下面使用 Docker 來演示。

配置 IP 地址:


 

并在 Server1 和 Server2 上啟動(dòng) Tomcat。

配置 Server

在 Server 端創(chuàng)建 jsp 頁(yè)面:

Server 1

[root@c5477d71795c ROOT]# pwd/var/lib/tomcat/webApps/ROOT[root@c5477d71795c ROOT]# cat index.jspfrom 172.20.1.101
session=<%=session.getId()%>

Server 2

[root@c5477d71795c ROOT]# pwd/var/lib/tomcat/webapps/ROOT[root@c5477d71795c ROOT]# cat index.jspfrom 172.20.1.102
session=<%=session.getId()%>

然后訪問 http://172.20.1.101:8080/ 和 http://172.20.1.102:8080/。

可分別顯示來自哪個(gè) Server 和對(duì)應(yīng)的 SessionId,并且刷新頁(yè)面時(shí) SessionId 不會(huì)變化(即使是使用 Ctrl+F5 刷新)。

配置 Nginx

修改 Nginx 的配置文件, 加入新的 upstream 配置和 server 配置。

upstream tomcat {server 172.20.1.101:8080;server 172.20.1.102:8080;server {location /cat {proxy_pass http://tomcat/;

重啟 Nginx:

[root@ce12b3b4ce00 sbin]# ./nginx -s reload

訪問 http://172.20.1.10/cat 并刷新,發(fā)現(xiàn) from 172.20.1.10x 一直在變化,并且session=xxx 也變化。

說明:此時(shí) Nginx 的配置無法保證 Session 一致性!

解決方案

在 Tomcat 后面部署 redis,memcached 等內(nèi)存數(shù)據(jù)庫(kù)來保存 Session 相關(guān)信息。

本例中在 Nginx 服務(wù)器上安裝 memcached 來解決 Session 一致性問題。

安裝 memcached

在 Nginx 容器中使用 yum 安裝:

yum install -y memcached

啟動(dòng) memcached

使用 memcached 命令啟動(dòng):

memcached -d -m 128m -p 11211 -l 172.20.1.10 -u root -P /tmp/

參數(shù)說明:

 

  • -d: 后臺(tái)啟動(dòng)
  • -m: 緩存大小
  • -p: 端口
  • -l: IP地址
  • -P: 服務(wù)啟動(dòng)后系統(tǒng)進(jìn)程 ID 存儲(chǔ)文件的目錄
  • -u: 服務(wù)器以哪個(gè)用戶作為管理用戶

 

修改 Tomcat 配置

在兩臺(tái) Server 中修改 tomcat 的配置:

[root@3a53f7504511 ROOT]# vi /etc/tomcat/context.xml# context標(biāo)簽中加入下面的內(nèi)容requestUriIgnorePattern=".*.(ico|png|gif|jpg|css|js)$"sessionBackupTimeout="1000"transcoderFactoryClass="de.JAVAkaffee.web.msm.serializer.kryo.KryoTranscoderFactory" />

導(dǎo)入 jar 包使用 yum 安裝的 Tomcat 可將 jar 包放在 /usr/share/java/tomcat/ 目錄下。

需要的 jar 包:


 

Maven 依賴如下:

asmasm3.2com.couchbase.clientcouchbase-client1.4.11com.googlecodekryo1.04de.javakaffeekryo-serializers0.11de.javakaffee.msmmemcached-session-manager1.8.2de.javakaffee.msmmemcached-session-manager-tc71.8.2com.googlecodeminlog1.2de.javakaffee.msmmsm-kryo-serializer1.8.2com.esotericsoftwarereflectasm1.0.NET.spyspymemcached2.11.4

注: 如果依賴和 Tomcat 版本不對(duì)應(yīng)可能會(huì)什么也不顯示,此時(shí)響應(yīng)碼為 500。

驗(yàn)證

上述步驟都正確配置之后, 再次訪問 http://172.20.1.10/cat 并刷新會(huì)發(fā)現(xiàn) SessionId 不再變化。

分享到:
標(biāo)簽:負(fù)載均衡
用戶無頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定