1.配置
http 段配置
upstream jing {
server 192.168.0.25:80 max_fails=3 fail_timeout=20s weight=1;
server 192.168.0.28:80 max_fails=3 fail_timeout=20s weight=2;
#後面參數表示如果,連續請求3次失敗,停機20s,不接受請求
}
#表示創建一個虛擬web組,name "jing"
server 段
location / {
proxy_pass http://jing/;
}
#location 匹配到轉發給 "jing" 虛擬web組
2. 調度算法
輪詢(rr),默認調度算法,將請求平均分配給兩個後端主機,假如一個頁面10個請求,第一個web主機響應 1 3 5 7 9 第二個主機響應,2 4 6 8 10,注意輪詢按請求來負載的。
加權輪詢(wrr),和輪詢一樣就是加了權重,假如web1 "weight=1" ,web2 "weight=2" ,有個頁面有9個請求,web1會響應3個,web會響應6個。
ip_hash,每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端服務器,可以解決session的問題
url_hash(第三方)根據用戶所請求的url資源路徑分配到後端不同的服務器,可以解決後端是緩存服務器提高命中率。
least_conn 最少連接數,根據當前後端服務器所響應的客戶端情況,把當前訪問請求調度到後端服務器響應相對較 少服務器上
fair(第三方) 按後端服務器的響應時間來分配請求,響應時間短的優先分配。比 weight、ip_hash更加智能的負載均衡算法,fair算法可以根據頁面大小和加載時間長短智能地進行負載均衡,也就是根據後端服務器的響應時間 來分配請求,響應時間短的優先分配。Nginx本身不支持fair,如果需要這種調度算法,則必須安裝upstream_fair模塊
3.服務器狀態
down 表示單前的server暫時不參與負載
weight 默認爲1.weight越大,負載的權重就越大。
max_fails :允許請求失敗的次數默認爲1.當超過最大次數時,設置在fail_timeout參數設置的時間內最大失敗次數,如果在這個時間內,所有針對該服務器的請求都失敗了,那麼認爲該服務器會被認爲是停機了。
fail_timeout:max_fails次失敗後,暫停的時間,默認爲10s。
backup: 其它所有的非backup機器down或者忙的時候,請求backup機器。所以這臺機器壓力會最輕。
4.四層代理(就和防火牆端口映射一樣)
vim /etc/nginx/nginx.conf
#先修改nignx 主配置文件,在http 段外面 添加四層代理的文件夾
mkdir -pv /etc/nginx/conf.4
vim /etc/nginx/conf.4/ssh.conf #新建轉發配置文件
stream{
upstream ssh {
server 192.168.0.28:22;
}
server {
listen 10022;
proxy_connect_timeout 3s;
#代理超時時間
proxy_timeout 3s;
#服務器返回超時時間
proxy_pass ssh;
}
}