南昌市有幫做網(wǎng)站的嗎作品提示優(yōu)化要刪嗎
目錄
一、負載均衡的作用
二、負載均衡狀態(tài)
三、負載均衡的指令
1、upstream 指令
2、server指令
四、負載均衡幾種方式
1、輪詢(Round Robin 常用)
2、IP Hash (較少)
3、最少連接數(shù)(Least Connections 較少)
4、加權輪詢(Weighted Round Robin 常用)
5、fair(較少)
6、backup(一般)
一、負載均衡的作用
- 解決服務器的高并發(fā)壓力,提高應用程序的處理性能。
- 提供故障轉移,實現(xiàn)高可用。
- 通過添加或減少服務器數(shù)量,增強網(wǎng)站的可擴展性。
- 在負載均衡器上進行過濾,可以提高系統(tǒng)的安全性。
二、負載均衡狀態(tài)
狀態(tài) | 概述 |
down | 當前的server暫時不參與負載均衡 |
backup | 預留的備份服務器,當主服務器不可用時,將用來傳遞請求 |
max_fails | 允許請求失敗的次數(shù) |
fail_timeout | 經過max_fails失敗后, 服務暫停時間 |
max_conns | 限制最大的接收連接數(shù) |
三、負載均衡的指令
1、upstream 指令
????????該指令是用來定義一組服務器,它們可以是監(jiān)聽不同端口的服務器,并且也可以是同時監(jiān)聽TCP和Unix socket的服務器。服務器可以指定不同的權重,默認為1。
2、server指令
????????該指令用來指定后端服務器的名稱和一些參數(shù),可以使用域名、IP、端口或者unix socket。與之前的server指令不一樣。
四、負載均衡幾種方式
1、輪詢(Round Robin 常用)
????????輪詢是最常見的負載均衡方式,Nginx會按照請求的順序依次將請求分發(fā)給后端服務器。例如,如果有3臺后端服務器,Nginx會將第1個請求分發(fā)給服務器A,第2個請求分發(fā)給服務器B,第3個請求分發(fā)給服務器C,然后循環(huán)重復。適于無狀態(tài)的請求。
配置示例:
upstream backend {server backend1;server backend2;server backend3;
}server {listen 80;location / {proxy_pass http://backend;}
}示例:
upstream backend{server 192.168.153.128:8081;server 192.168.153.128:8082;server 192.168.153.128:8083;
}
server {listen 8080;server_name localhost;location /{proxy_pass http://backend;}
}示例2:對特定資源負載upstream videobackend{server 192.168.153.128:9001;server 192.168.153.128:9002;
}
upstream filebackend{server 192.168.153.128:9003;server 192.168.153.128:9004;
}
server {listen 8084;server_name localhost;location /video/ {proxy_pass http://videobackend;}location /file/ {proxy_pass http://filebackend;}
}示例3:對不同域名實現(xiàn)負載upstream qwe{server 192.168.153.128:9001;server 192.168.153.128:9002;
}
upstream asd{server 192.168.153.128:9003;server 192.168.153.128:9004;
}
server {listen 8085;server_name www.qwe.cn;location / {proxy_pass http://qwe;}
}
server {listen 8086;server_name www.asd.cn;location / {proxy_pass http://asd;}
}
2、IP Hash (較少)
????????IP Hash方式根據(jù)客戶端的IP地址進行哈希計算,將同一個客戶端的請求始終轉發(fā)到同一臺后端服務器上。這樣可以保證同一個客戶端的請求都由同一臺服務器處理,適合于需要保持會話的應用場景。
配置示例:
upstream backend {ip_hash;server backend1;server backend2;server backend3;
}server {listen 80;location / {proxy_pass http://backend;}
}
3、最少連接數(shù)(Least Connections 較少)
????????最少連接數(shù)方式會將請求分發(fā)給當前連接數(shù)最少的后端服務器,以達到負載均衡的效果。這種方式適用于后端服務器性能不一致的情況。
配置示例:
upstream backend {least_conn;server backend1;server backend2;server backend3;
}server {listen 80;location / {proxy_pass http://backend;}
}
4、加權輪詢(Weighted Round Robin 常用)
????????加權輪詢方式可以根據(jù)后端服務器的性能配置不同的權重,來調整請求的分發(fā)比例。權重越高的服務器會接收到更多的請求。
配置示例:
upstream backend {server backend1 weight=3;server backend2 weight=2;server backend3 weight=1;
}server {listen 80;location / {proxy_pass http://backend;}
}示例:
upstream backend{server 192.168.153.128:9001 weight=7;server 192.168.153.128:9002 weight=5;server 192.168.153.128:9003 weight=3;
}
server {listen 8083;server_name localhost;location /{proxy_pass http://backend;}
}
5、fair(較少)
upstream backend {fair;server backend1 weight=3;server backend2 weight=2;server backend3 weight=1;
}server {listen 80;location / {proxy_pass http://backend;}
}
????????fair模塊是比上面幾個更加智能的負載均衡算法。此種算法可以依據(jù)頁面大小和加載時間長短智能地進行負載均衡,也就是根據(jù)后端服務器的響應時間來分配請求,響應時間短的優(yōu)先分配。Nginx本身是不支持fair的,如果需要使用這種調度算法,必須下載Nginx的upstream_fair模塊;再次不做演示
6、backup(一般)
????????backup關鍵字用于定義備份服務器。當主服務器宕機或無法處理請求時,備份服務器將接手處理請求。
upstream backend {server backend1;server backend2 backup;
}server {listen 80;location / {proxy_pass http://backend;}
}當 backend1 處于在線狀態(tài)并且能夠處理請求時,Nginx將只將請求發(fā)送到backend1。
只有當backend1 宕機或者由于某些原因無法處理請求時,Nginx才會將請求發(fā)送到backend2。
這種配置通常用于高可用性部署,確保在主服務器宕機時,有一個備用服務器可以接手處理請求,從而減少服務中斷的影響。