程式碼編寫過程中的問題解決思路之程式碼溯源法
阿新 • • 發佈:2022-05-29
負載均衡的實現有以下4種模式:
1)、輪詢(預設)
每個請求按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,能自動剔除。
2)、weight
指定輪詢機率,weight和訪問比率成正比,用於後端伺服器效能不均的情況。
2)、ip_hash
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決session的問題。
3)、fair(第三方)
按後端伺服器的響應時間來分配請求,響應時間短的優先分配。
4)、url_hash(第三方)
配置如下:
1:開啟nginx.cnf檔案
在http節點下新增upstream節點:
# 負載均衡的配置 # Nginx基於連線探測,如果發現後端異常,在單位週期為fail_timeout設定的時間,中達到max_fails次數, # 這個週期次數內,如果後端同一個節點不可用,那麼接將把節點標記為不可用,並等待下一個週期(同樣時常為fail_timeout)再一次去請求,判斷是否連線是否成功。 upstream metaspace.test.com { #ip_hash; //ip_hash的配置,直接加一行就可以了,這樣只要是同一個ip過來的都會到同一臺server上 #server 10.10.12.245:9000 weight=100000; server 127.0.0.1:8090 weight=1 max_fails=3 fail_timeout=10s; server 127.0.0.1:8091 weight=1 max_fails=3 fail_timeout=10s; server 127.0.0.1:8080 weight=1 max_fails=3 fail_timeout=10s;
#server 127.0.0.1:8091 weight=1 backup | down; }
其中 metaspace.test.com 是自己取的名字,最後會通過這個名字在url裡訪問的
2: 配置站點server
server { listen 80; server_name dev.nginx.test.com; # 跳轉配置 location / { proxy_pass http://dev.nginx.test.com; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } }
主備配置:
upstream dev.nginx.test.com { server 127.0.0.1:8091 weight=1; server 127.0.0.1:8090 weight=1 backup; }
設定某一個節點為backup,那麼一般情況下所有請求都訪問server1,當server1掛掉或者忙的的時候才會訪問server2
upstream dev.nginx.test.com { server 127.0.0.1:8091 weight=1; server 127.0.0.1:8090 weight=1 down; }
設定某個節點為down,那麼這個server不參與負載