本文我們繼續來介紹nginx的實際操作,本文來介紹下nginx的負載均衡的實現。
大家看看上面這個負載均衡的結構圖,大家會發現其實和我們上節課講的反向**很像是不是?真實伺服器如果有多個是不是就是我們上面的結構圖了呀?所以什麼事負載均衡呢?其實就是在反向**的基礎上通過各種負載策略將使用者的請求**到對應的真實服務上。
網路負載均衡的大致原理是利用一定的分配策略將網路負載平衡地分攤到網路集群的各個操作單元上,使得單個重負載任務能夠分擔到多個單元上並行處理,使得大量併發訪問或資料流量分擔到多個單元上分別處理,從而減少使用者的等待響應時間在上篇文章的基礎上我們再建立兩個服務,三個服務的埠分別是 8081 8082 8083.upstream是nginx的http upstream模組,這個模組通過乙個簡單的排程演算法來實現客戶端ip到後端伺服器的負載均衡
upstream塊
upstream name
upstream gupao
server
}
server塊語法:
server address [parameters]
組成
說明server
必選address
必選 可以是主機名、網域名稱、ip,也可以指定埠號
parameters
可選 down:表示當前server已停用
backup:表示當前server是備用伺服器,只有其它非backup後端伺服器都掛掉了或者很忙才會分配到請求
weight:表示當前server負載權重,權重越大被請求機率越大。預設是1
max_fails和fail_timeout一般會關聯使用,如果某台server在fail_timeout時間內出現了max_fails次連線失敗,那麼nginx會認為其已經掛掉了,從而在fail_timeout時間內不再去請求它,fail_timeout預設是10s,max_fails預設是1,即預設情況是只要發生錯誤就認為伺服器掛掉了,如果將max_fails設定為0,則表示取消這項檢查。
upstream模組排程演算法
1.輪詢(預設): 每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除
2.ip_hash: 每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問乙個後端伺服器,可以解決session的問題
3.權重:即可以指定輪詢比率,weight和訪問機率成正比,主要應用於後端伺服器異質的場景下
未安裝nginx
切換到nginx目錄執行一下操作
配置:./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --add-module=/home/nginx-upstream-fair-master
編譯安裝
make && make intstall
安裝過nginx
切換到nginx目錄執行一下操作
配置./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --add-module=/home/nginx-upstream-fair-master
編譯make
複製nginx
同樣也需要安裝第三方的外掛程式
Nginx負載均衡配置實戰詳解
1 實驗環境 nginx 192.168.1.101 80 tomcat01 192.168.1.102 8080 tomcat02 192.168.1.103 8080 2 負載均衡主流演算法 輪詢,權重,ip雜湊演算法,最少連線數,fair 第三方外掛程式 3 輪詢 配置nginx.conf v...
Web集群 Nginx 負載均衡實戰
三颱虛擬機器 roel hostname ip 說明 proxy host node 1 192.168.74.153 nginx 主機 web server 1 node 2 192.168.74.162 web伺服器1 web server 2 node 3 192.168.74.163 web...
Nginx應用之負載均衡
負載均衡就是將負載分攤到多個操作單元上執行,從而提高服務的可用性和響應速度,帶給使用者更好的體驗。1 基於dns的負載均衡 由於在dns伺服器中,可以為多個不同的位址配置相同的名字,最終查詢這個名字的客戶機將在解析這個名字時得到其中乙個位址,所以這種 方式是通過dns服務中的隨機名字解析網域名稱和i...