nginx負載均衡分配策略有哪些?
答:
1、輪詢(默認,不用在upstream中配置)方式
2、weight(權重)
當指定的服務器的權重參數,權重占比為負載均衡決定的一部分。權重大負載就大。
upstream myapp1 {
server srv1.example.com weight=3;
server srv2.example.com;
server srv3.example.com;
}
3、ip_hash(訪問ip)
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個后端服務器,可以解決session的問題。但如果這個后端服務器故障之后,分配到別的服務的時候還是有session問題。
upstream favresin{
ip_hash;
server 10.0.0.10:8080;
server 10.0.0.11:8080;
}
4、least_conn(最少連接數)
在一些要求需要更長的時間才能完成的應用情況下, 最少連接可以更公平地控制應用程序實例的負載。使用最少連接負載均衡,nginx不會向負載繁忙的服務器上分發請求,而是將請求分發到負載低的服務器上。
upstream myapp1 {
least_conn;
server srv1.example.com;
server srv2.example.com;
server srv3.example.com;
}
5、fair(第三方)
按后端服務器的響應時間來分配請求,響應時間短的優先分配。與weight分配策略類似。
upstream myapp1{
server 10.0.0.10:8080;
server 10.0.0.11:8080;
fair;
}
6、url_hash(第三方)
按訪問url的hash結果來分配請求,使每個url定向到同一個后端服務器,后端服務器為緩存時比較有效。
例如:http://localhost:18082/systems/index.html#http://localhost:18080/systems/myIndex,nagix會根據url中的hash(http://localhost:18080/systems/myIndex)指派到同一個服務器
upstream your.website.name{
server 10.0.0.10:8080;
server 10.0.0.11:8080;
hash $request_uri;
}