nginx配置負載均衡其實很簡單,一直還以為負載均衡是個很高端人士玩的
首先先了解下負載均衡,假設一個場景,如果有1000個客戶同時訪問你服務器時,而你只有一台服務器的Nginx,且只有一個MySQL服務器,那么這些請求
可能會高出你的的服務器承受能力,就會down掉;
解決方法:
1.垂直升級:就是增加服務器的配置,CPU,內存等
2.水平升級:添加多台服務器來分擔服務器壓力
常見的負載均衡器
根據工作在的協議層划分可划分為:
- 四層負載均衡:根據請求報文中的目標地址和端口進行調度
- 七層負載均衡:根據請求報文的內容進行調度,這種調度屬於「代理」的方式
根據軟硬件划分:
- 硬件負載均衡:
- F5 的 BIG-IP
- Citrix 的 NetScaler
- 這類硬件負載均衡器通常能同時提供四層和七層負載均衡,但同時也價格不菲
- 軟件負載均衡:
- TCP 層:LVS,HaProxy,Nginx
- 基於 HTTP 協議:Haproxy,Nginx,ATS(Apache Traffic Server),squid,varnish
- 基於 MySQL 協議:mysql-proxy
配置Nginx負載均衡
vi /nignx目錄/nginx.conf
#添加下面這段 backend可以自由命名
upstream backend {
#添加服務器到負載均衡
server 192.168.1.252;
server 192.168.1.251 weight=2;#設置該服務器在負載均衡中的權重 默認為1;越高則訪問的頻次越大
server 192.168.1.252 down; #表示down掉這台服務器,不參與負載均衡
server 192.168.1.247 backup; #備用服務器 當其他服務器很忙或者down掉之后才會啟動這台的
}
#配置參數
#max_fails :允許請求失敗的次數默認為1.當超過最大次數時,返回proxy_next_upstream 模塊定義的錯誤
#fail_timeout:max_fails次失敗后,暫停的時間。
server {
listen 80;
server_name localhost;
location / {
#反向代理的地址
proxy_pass http://backend;
}
}
這樣子就已經配置完成了
訪問localhost,如果三台服務器能輪詢切換就證明配置成功