1. 程式人生 > >nginx2-nginx實現反向代理-負載均衡|宕機處理

nginx2-nginx實現反向代理-負載均衡|宕機處理

叢集會產生哪些問題

  1. 分散式job冪等性問題(重複),例如任務排程
  2. 會話session共享問題
  3. 分散式生成全域性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伺服器可能宕機

  • 多主多備