筆記
專欄收錄該內容
36 篇文章1 訂閱
訂閱專欄
如果你的nginx伺服器給2臺web伺服器做**,負載均衡演算法採用輪詢,那麼當你的一台機器web程式關閉造成web不能訪問,那麼nginx伺服器分發請求還是會給這台不能訪問的web伺服器,如果這裡的響應連線時間過長,就會導致客戶端的頁面一直在等待響應,對使用者來說體驗就打打折扣,這裡我們怎麼避免這樣的情況發生呢。這裡我配張圖來說明下問題。
如果負載均衡中其中web2發生這樣的情況,nginx首先會去web1請求,但是nginx在配置不當的情況下會繼續分發請求到web2,然後等待web2響應,直到我們的響應時間超時,才會把請求重新分發給web1,這裡的響應時間如果過長,使用者等待的時間就會越長。
三颱裝有nginx的虛擬機器,一台做反向**伺服器,另外兩台做真實伺服器,模擬負載均衡。
192.168.13.129#反向**伺服器
192.168.13.133
#真實伺服器
192.168.13.139 #真實伺服器
#我們在反向**伺服器上(192.168.13.139)進行如下配置:
[root@real-server ~]# vim /etc/nginx/conf.d/default.conf
#清空並新增以下內容
upstream test_server
server
}[root@server ~]# nginx -t
[root@server ~]# nginx -s reload
第一台真實伺服器配置(192.168.13.133):[root@real-server ~]# vim /etc/nginx/conf.d/default.conf
清空並新增以下內容
server
}[root@real-server ~]# nginx -t
[root@real-server ~]# nginx -s reload
#建立目錄和檔案並寫入測試資料
[root@real-server ~]# mkdir -p /usr/share/nginx/html/login
[root@real-server ~]# echo "this is first real-server" > /usr/share/nginx/html/login/index.html
第二台真實伺服器配置(192.168.13.139測試:開啟網頁輸入反向**伺服器ip:):[root@real-server ~]# vim /etc/nginx/conf.d/default.conf
清空並新增以下內容
server
}[root@real-server ~]# nginx -t
[root@real-server ~]# nginx -s reload
#建立目錄和檔案並寫入測試資料
[root@real-server ~]# mkdir -p /usr/share/nginx/html/login
[root@real-server ~]# echo "this is second real-server" > /usr/share/nginx/html/login/index.html
重新整理一下
upstream 支援4種負載均衡排程演算法:
a、輪詢(預設):每個請求按時間順序逐一分配到不同的後端伺服器;
b、ip_hash:每個請求按訪問ip的hash結果分配,同乙個ip客戶端固定訪問乙個後端伺服器。可以保證來自同一ip的請求被打到固定的機器上,可以解決session問題。
c、url_hash:按訪問url的hash結果來分配請求,使每個url定向到同乙個後端伺服器。後台伺服器為快取的時候效率。
配置例項
upstream test_server然後再次訪問方向**伺服器ip
2.輪詢:nginx預設就是輪詢其權重都預設為1,伺服器的訪問順序就是第一台伺服器,第二台,第一台,第二台然後再次迴圈(因為預設是輪詢,所以不需要加任何引數)
3、加權輪詢:跟據配置的權重的大小而分發給不同伺服器不同數量的請求。如果不設定,則預設為1。
upstream test_server4、ip_hash:nginx會讓相同的客戶端ip請求相同的伺服器。
upstream test_server5、nginx負載均衡配置狀態引數
down,表示當前的server暫時不參與負載均衡。
backup,預留的備份機器。當其他所有的非backup機器出現故障或者忙的時候,才會請求backup機器,因此這台機器的壓力最輕。
max_fails,允許請求失敗的次數,預設為1。當超過最大次數時,返回錯誤。
fail_timeout,在經歷了max_fails次失敗後,暫停服務的時間單位秒。max_fails可以和fail_timeout一起使用。
upstream test_server
nginx負載均衡及配置
實現伺服器集群主要就是為了負載均衡 load balance 有兩台或者以上的伺服器或者站點提供服務,服務將來自客戶端的請求,靠某種演算法,去盡量平分請求到集群的機器中,從而避免一台伺服器因為負載太高而出現故障,而即使其中某個機器出現故障,負載均衡會自動規避選擇,使得使用者也能正常訪問服務。好處 減...
nginx安裝及負載均衡配置
nginx engine x 是乙個高效能的 http 和 反向 伺服器,也是乙個 imap pop3 smtp 伺服器。nginx 是由 igor sysoev 為俄羅斯訪問量第二的 rambler.ru 站點開發的,第乙個公開版本0.1.0發布於2004年10月4日。其將源 以類bsd許可證的形...
nginx負載均衡配置及測試
the remote server ip is the nginx server ip is 2 啟動兩個tomcat,進行訪問測試 宿主機中的 http localhost 8080 test.jsp ubuntu14.04中的 http localhost 8080 test.jsp 3 在ng...