nginx負載均衡與session共享

2021-09-24 20:16:16 字數 1601 閱讀 6044

負載均衡的概念:

負載均衡的概念就是當訪問量很大的時候,乙個 tomcat 吃不消了,這時候就準備多個 tomcat,由nginx按照權重來對請求進行分配,從而緩解單獨乙個tomcat受到的壓力,如圖所示

準備兩個tomcat,修改埠為8111和8222,啟動。

在nginx配置檔案中,首先增加乙個upstream ,用來指向這兩個tomcat

upstream tomcat_8111_8222
然後修改location,反向**到上述配置。

location /
weight表示權重,值越大,被分配到的機率越大。

重啟nginx

nginx -s reload
訪問可以看到對jsp的訪問,被分配到了不同的 tomcat上

nginx session共享

通過負載均衡,我們可以把請求分發到不同的 tomcat 來緩解伺服器的壓力,但是這裡存在乙個問題: 當同乙個使用者第一次訪問tomcat_8111 並且登入成功, 而第二次訪問卻被分配到了tomcat_8222, 這裡並沒有記錄他的登陸狀態,那麼就會呈現未登入狀態了,嚴重傷害了使用者體驗。

解決辦法1:ip_hash

通過ip位址標記使用者,如果多次請求都是從同乙個ip來的,那麼就都分配到同乙個tomcat.

這樣就不會出現負載均衡 session問題了. 處理手段也很簡單,如圖所示在upstream最後加上ip_hash;就行了。不過這種方案並不完美,當如下幾種情況發生時就有問題:

這樣就規避了解決辦法一: ip_hash裡會出現的兩種問題了。

接下來進行具體操作,分幾個步驟

啟動redis

給兩個tomcat使用jar包

配置兩個tomcat

重啟兩個tomcat測試

在tomcat/conf/context.xml ,增加下面這段**

重啟tomcat訪問並登陸

然後直接訪問,雖然沒有在tomcat8222上登陸,但是可以觀察到已經呈現為登陸狀態了

nginx 負載均衡 Nginx負載均衡策略

nginx提供的負載均衡策略有2種 內建策略和擴充套件策略。內建策略為輪詢 預設 加權輪詢,ip hash,第三方。upstream mysvr1 輪詢 每個請求按照時間順序逐一的分配到每乙個後台伺服器上。如果某台伺服器宕機了,將會自動的剔除宕機的服務。nginx預設就是輪詢其權重都預設為1,伺服器...

負載均衡 HAProxy 與 Nginx

另一種更重要的衡量尺度是它可以攜帶的同時連線。這是需要進行大量的遠距離連線保持的大型站點的關鍵。我們的haproxy上最多有250,000的同時連線,遠遠超出了nginx或任何其他的前端軟體系統。haproxy的配置系統是非常強大的,可以配置很多的前端監聽 伺服器 和後端的伺服器池,所有的前後端都可...

nginx負載均衡

nginx 的 upstream目前支援 4 種方式的分配 1 輪詢 預設 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。2 weight 指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。3 ip hash 每個請求按訪問ip的hash...