nginx2-nginx實現反向代理-負載均衡|宕機處理
阿新 • • 發佈:2018-11-01
叢集會產生哪些問題
- 分散式job冪等性問題(重複),例如任務排程
- 會話session共享問題
- 分散式生成全域性id(提前生成好,存在redis)
反向代理
不暴露真實ip地址
先配置反向代理,再配置負載均衡(叢集)
www.fangwen.com已經在host檔案修改為127.0.0.1必須加分號
server {
listen 80;
server_name www.fangwen.com;
location / {
proxy_pass http://127.0.0.1:8081 ;
index index.html index.htm;
}
負載均衡
實現叢集根據權重[,輪訓機制機器相同],ip繫結
解決:高吞吐量
1.輪詢(預設)
每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。
新增到配置檔案中,與server並列(下面一樣)
upstream backserver {
server 192.168.0.14:8080;
server 192.168.0.15:8081;
}
2.指定權重
指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。
upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
3.IP繫結 ip_hash
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端伺服器
可以解決session共享的問題。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
叢集宕機容錯機制
1.nginx伺服器沒宕機
- nginx配置,叢集宕機,自動輪詢到下一臺伺服器
server {
listen 80;
server_name www.fangwen.com;
location / {
proxy_pass http://backserver;
index index.html index.htm;
proxy_connect_timeout 1;
proxy_send_timeout 1;
proxy_read_timeout 1;
}
}
session存放在redis中以防失效
- 一主多備
2.nginx伺服器可能宕機
- 多主多備