使用Nginx實現負載均衡nginx
1、nginx簡介服務器
nginx是一個高性能的HTTP服務器和反向代理服務器。它起初是俄羅斯人Igor Sysoev開發的,至今支撐者俄羅斯的不少大型的網站。session
2、nginx支持的三種負載均衡策略負載均衡
輪詢:將請求依次輪詢發給每一個服務器。memcached
最少連接:將請求發送給持有最少活動連接的服務器。函數
ip哈希:經過哈希函數決定請求發送給哪一個服務器。性能
權重:服務器的權重越高,處理請求的機率越大。網站
3、輪詢負載均衡spa
在nginx.conf配置文件中添加以下配置,此配置有三臺服務器提供支付服務。代理
http { upstream CashServers { server CashServers1.com; server CashServers2.com; server CashServers3.com; } server { listen 80; location / { proxy_pass http://CashServers; } } }
須要注意如下幾點
1.缺省配置就是輪詢策略;
2.nginx負載均衡支持http和https協議,只須要修改 proxy_pass後協議便可;
3.nginx支持FastCGI, uwsgi, SCGI,memcached的負載均衡,只需將 proxy_pass改成fastcgi_pass, uwsgi_pass, scgi_pass,memcached_pass便可。
4.此策略適合服務器配置至關,無狀態且短平快的服務使用。
4、最少連接負載均衡
http { upstream CashServers { least_conn; server CashServers1.com; server CashServers2.com; server CashServers3.com; } server { listen 80; location / { proxy_pass http://CashServers; } } }
須要注意如下幾點
1.最少連接負載均衡經過least_conn指令定義;
2.此負載均衡策略適合請求處理時間長短不一形成服務器過載的狀況;
5、ip哈希負載均衡
http { upstream CashServers { ip_hash; server CashServers1.com; server CashServers2.com; server CashServers3.com; } server { listen 80; location / { proxy_pass http://CashServers; } } }
須要注意如下幾點
1.ip哈希負載均衡使用ip_hash指令定義;
2.nginx使用請求客戶端的ip地址進行哈希計算,確保使用同一個服務器響應請求;
3.此策略適合有狀態服務,好比session;
6、權重負載均衡
http { upstream CashServers { server CashServers1.com weight=3; server CashServers2.com weight=2; server CashServers3.com weight=1; } server { listen 80; location / { proxy_pass http://CashServers; } } }
須要注意如下幾點
1. 權重負載均衡須要使用weight指令定義;
2. 權重越高分配到須要處理的請求越多;
3.此策略能夠與最少連接負載和ip哈希策略結合使用;
4.此策略比較適合服務器的硬件配置差異比較大的狀況;
7、健康檢測
nginx內置了針對服務器的健康檢測機制,若是特定服務器請求失敗,則nginx便可進行標記待下次就不會請求分配給它。max_fails定義失敗指定次數後進行標記服務器不可用。