Linux配置Nginx負載均衡
首先先了解下負載均衡,假設一個場景,如果有1000個客戶同時訪問你伺服器時,而你只有一臺伺服器的Nginx,且只有一個MySQL伺服器,那麼這些請求可能會高出你的的伺服器承受能力,就會down掉。
解決方法:
1.垂直升級:就是增加伺服器的配置,CPU,記憶體等
2.水平升級:新增多臺伺服器來分擔伺服器壓力
常見的負載均衡器
根據工作在的協議層劃分可劃分為:
- 四層負載均衡:根據請求報文中的目標地址和埠進行排程
- 七層負載均衡:根據請求報文的內容進行排程,這種排程屬於「代理」的方式
根據軟硬體劃分:
- 硬體負載均衡:
- F5 的 BIG-IP
- Citrix 的 NetScaler
- 這類硬體負載均衡器通常能同時提供四層和七層負載均衡,但同時也價格不菲
- 軟體負載均衡:
配置Nginx負載均衡
- TCP 層:LVS,HaProxy,Nginx
- 基於 HTTP 協議:Haproxy,Nginx,ATS(Apache Traffic Server),squid,varnish
- 基於 MySQL 協議:mysql-prox
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,如果三臺伺服器能輪詢切換就證明配置成功
-