nginx安裝請參考:《nginx原始碼安裝》
一、內建負載策略
nginx負載均衡是通過upstream模組來實現的,內建實現了三種負載策略,配置還是比較簡單的。官網負載均衡配置說明:
輪循(預設)
nginx根據請求次數,將每個請求均勻分配到每台伺服器
最少連線
將請求分配給連線數最少的伺服器。nginx會統計哪些伺服器的連線數最少。
ip hash
繫結處理請求的伺服器。第一次請求時,根據該客戶端的ip算出乙個hash值,將請求分配到集群中的某一台伺服器上。後面該客戶端的所有請求,都將通過hash演算法,找到之前處理這台客戶端請求的伺服器,然後將請求交給它來處理。
1> 輪循
}# ... 省略其它配置}1
2345
6789
1011
1213
1415
1617
1819
20proxy_pass http://tomcats:表示將所有請求**到tomcats伺服器組中配置的某一台伺服器上。
upstream模組:配置反向**伺服器組,nginx會根據配置,將請求分發給組裡的某一台伺服器。tomcats是伺服器組的名稱。
upstream模組下的server指令:配置處理請求的伺服器ip或網域名稱,埠可選,不配置預設使用80埠。通過上面的配置,nginx預設將請求依次分配給100,101,102來處理,可以通過修改下面這些引數來改變預設的分配策略:
weight
預設為1,將請求平均分配給每台server
upstream tomcats 12
345上例配置,表示6次請求中,100分配2次,101分配3次,102分配1次
max_fails
預設為1。某台server允許請求失敗的次數,超過最大次數後,在fail_timeout時間內,新的請求將不會分配給這台機器。如果設定為0,nginx會將這台server置為永久無效狀態,然後將請求發給定義了proxy_next_upstream, fastcgi_next_upstream, uwsgi_next_upstream, scgi_next_upstream, and memcached_next_upstream指令來處理這次錯誤的請求。
fail_timeout
預設為10秒。某台server達到max_fails次失敗請求後,在fail_timeout期間內,nginx會認為這台server暫時不可用,不會將請求分配給它
upstream tomcats 12
345192.168.0.100這台機器,如果有3次請求失敗,nginx在15秒內,不會將新的請求分配給它。
backup
備份機,所有伺服器掛了之後才會生效
upstream tomcats 12
3456
在100和101都掛了之前,102為不可用狀態,不會將請求分配給它。只有當100和101都掛了,102才會被啟用。
down
標識某一台server不可用。可能能通過某些引數動態的啟用它吧,要不真沒啥用。
upstream tomcats 12
3456
7表示101這台server為無效狀態,不會將請求分配給它。
max_conns
限制分配給某台server處理的最大連線數量,超過這個數量,將不會分配新的連線給它。預設為0,表示不限制。注意:1.5.9之後的版本才有這個配置
upstream tomcats 12
3表示最多給100這台server分配1000個請求,如果這台server正在處理1000個請求,nginx將不會分配新的請求給到它。假如有乙個請求處理完了,還剩下999個請求在處理,這時nginx也會將新的請求分配給它。
resolve
將server指令配置的網域名稱,指定網域名稱解析伺服器。需要在http模組下配置resolver指令,指定網域名稱解析服務
表示example.com網域名稱,由10.0.0.1伺服器來負責解析。
upstream模組server指令的其它引數和詳細配置說明,請參考官方文件。
二、第三方負載策略
1> fair
根據伺服器的響應時間來分配請求,響應時間短的優先分配,即負載壓力小的優先會分配。
由於fair模組是第三方提供的,所以在編譯nginx原始碼的時候,需要將fair新增到nginx模組中。
cd /opt
wget
unzip master.zip12
3解壓後的目錄名為:nginx-upstream-fair-master
2> 重新編譯nginx,將fair模組新增到編譯引數
我的nginx原始碼目錄在/opt/nginx-1.10.0
cd /opt/nginx-nginx-1.10.0
./configure --prefix=/opt/nginx --add-module=/opt/nginx-upstream-fair-master
make12
3注意:不要執行make install,這樣會覆蓋之前nginx的配置
3> 將新編譯的nginx可執行程式拷貝到/opt/nginx/sbin/目錄下,覆蓋之前安裝的nginx
編譯後的nginx執行程式,放在nginx原始碼的objs目錄下
ps -aux | grep nginx
kill -9 nginx程序id # 停止nginx服務
cp /opt/nginx-1.10.0/objs/nginx /opt/nginx/sbin/ # 覆蓋舊的nginx
nginx # 啟動服務12
34配置使用fair負載策略模組:
upstream tomcats 12
3456
由於採用fair負載策略,配置weigth引數改變負載權重將無效。
2> url_hash
按請求url的hash結果來分配請求,使每個url定向到同乙個後端伺服器,伺服器做快取時比較有效。
upstream tomcats
nginx負載均衡配置
curl nginx upstream fair.zip unzip nginx upstream fair.zip cd nginx 1.6.2 檢視當前nginx 編譯引數 nginx v 輸出 configure arguments prefix usr local nginx configu...
Nginx負載均衡配置
負載均衡是我們大流量 要做的乙個東西,下面我來給大家介紹在nginx伺服器上進行負載均衡配置方法,希望對有需要的同學有所幫助哦。負載均衡 先來簡單了解一下什麼是負載均衡,單從字面上的意思來理解就可以解釋n臺伺服器平均分擔負載,不會因為某台伺服器負載高宕機而某台伺服器閒置的情況。那麼負載均衡的前提就是...
Nginx負載均衡配置
nginx安裝請參考 nginx原始碼安裝 nginx負載均衡是通過upstream模組來實現的,內建實現了三種負載策略,配置還是比較簡單的。官網負載均衡配置說明 省略其它配置 根據伺服器的響應時間來分配請求,響應時間短的優先分配,即負載壓力小的優先會分配。由於fair模組是第三方提供的,所以在編譯...