最近要用到一臺nginx和兩臺tomcat做一個架構,其中nginx 的作用就是負載均衡,整理了一下步驟:
部署環境:三臺centos
分別爲:1、nginx 192.168.1.213
2、tomcat1 192.168.1.233
3、tomcat2 192.168.1.184
前提條件,nginx、tomcat正常訪問首頁。網絡互通
部署思路:客戶端訪問nginx負載均衡機(192.168.1.213)上,由1.213調度訪問請求到後端的真實tomcat1服務器或者tomcat2服務器上。
nginx負載均衡機(192.168.1.213)上的nginx。conf設置如下:
修改/etc/nginx/nginx.conf
在http段下加入以下代碼:
upstream LXL { #####LXL爲自定義負載均衡的名字,要記着下面用的到
server 192.168.1.233:8080; #這裏本人是開放的8080端口
server 192.168.1.184:8080;
}
server {
listen 8080;
server_name 192.168.1.213;
location / { #對/所有做負載均衡,nginx採用完全轉發
proxy_pass http://LXL; #這upstream的名稱
proxy_set_header Host $host; #保留用戶真實信息
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
ok!到這,關於nginx的負載均衡就算完畢,這只是簡單地一種,你們想想,nginx的負載均衡作用是把壓力分散到下面的服務器,到底怎麼分散呢。nginx給了三種模式
1、輪詢(這個爲默認)
每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器down掉,能 自動剔除
比如上面那個就是如此
2、指定的權重(加權輪詢)
指定輪詢機率,weight和訪問比率成正比,用於後端服務器性能不均的情況
upstream LXL {
server 192.168.1.233:8080 weight=10 fail_timeout=20s;
server 192.168.1.184:8080 weight=10 fail_timeout=20s;
}
3、IP綁定ip_hash
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端服務器,可 以解決session的問題
upstream LXL {
ip_hash;
server 192.168.1.233:8080 fail_timeout=20s;
server 192.168.1.184:8080 fail_timeout=20s;
}
4、fair(第三方)
按後端服務器的響應時間來分配請求,響應時間短的優先分配。
upstream backserver {
server server1;
server server2;
fair;
}
OK!關於nginx的負載均衡就到這裏吧,
希望對初學者有所幫助