nginx不單可以作為強大的web服務(wù)器评肆,也可以作為一個反向代理服務(wù)器,而且nginx還可以按照調(diào)度規(guī)則實現(xiàn)動態(tài)陕赃、靜態(tài)頁面的分離卵蛉,可以按照輪詢、ip哈希么库、URL哈希傻丝、權(quán)重等多種方式對后端服務(wù)器做負載均衡,同時還支持后端服務(wù)器的健康檢查诉儒。
如果只有一臺服務(wù)器時,這個服務(wù)器掛了,那么對于網(wǎng)站來說是個災(zāi)難.因此桑滩,這時候的負載均衡就會大顯身手了,它會自動剔除掛掉的服務(wù)器.
Nginx負載均衡一些基礎(chǔ)知識:
nginx 的 upstream目前支持 4 種方式的分配
1)、輪詢(默認)
每個請求按時間順序逐一分配到不同的后端服務(wù)器,如果后端服務(wù)器down掉运准,能自動剔除幌氮。
2)、weight
指定輪詢幾率胁澳,weight和訪問比率成正比该互,用于后端服務(wù)器性能不均的情況。
2)韭畸、ip_hash
每個請求按訪問ip的hash結(jié)果分配宇智,這樣每個訪客固定訪問一個后端服務(wù)器,可以解決session的問題胰丁。
3)随橘、fair(第三方)
按后端服務(wù)器的響應(yīng)時間來分配請求,響應(yīng)時間短的優(yōu)先分配锦庸。
4)机蔗、url_hash(第三方)
以下是具體使用步驟:
1. 安裝
1) 從Nginx官網(wǎng)下載頁面(http://nginx.org/en/download.html)下載Nginx最新版本(目前是1.5.13版本)安裝包;
2) 解壓后復(fù)制到部署目錄。
2. 啟動和停止Nginx
Nginx目前只支持命令行操作甘萧,操作前先進入Dos命令環(huán)境萝嘁,并進入Nginx部署目錄。
1) 啟動Nginx:start nginx
2) 停止Nginx:nginx -s stop
3) 修改配置后重啟:nginx -s reload
這三個命令可分別做成bat文件扬卷,放在部署目錄下牙言,方便后續(xù)操作。
start nginx.bat文件內(nèi)容:start nginx
stop nginx.bat文件內(nèi)容:nginx -s stop
reload nginx.bat文件內(nèi)容:nginx -s reload
3. 反向代理配置
修改部署目錄下conf子目錄的nginx.conf文件(如nginx-1.5.13\conf\nginx.conf)內(nèi)容怪得,可調(diào)整相關(guān)配置咱枉。
反向代理配置示例:
location / {
#設(shè)置主機頭和客戶端真實地址,以便服務(wù)器獲取客戶端真實IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#禁用緩存
proxy_buffering off;
#設(shè)置反向代理的地址
proxy_pass http://192.168.1.1;
}
代理地址根據(jù)實際情況修改徒恋。
4. 負載均衡配置
nginx 的 upstream默認是以輪詢的方式實現(xiàn)負載均衡蚕断,這種方式中,每個請求按時間順序逐一分配到不同的后端服務(wù)器因谎,如果后端服務(wù)器down掉基括,能自動剔除颜懊。
另外一種方式是ip_hash:每個請求按訪問ip的hash結(jié)果分配财岔,這樣每個訪客固定訪問一個后端服務(wù)器,可以解決session的問題河爹。
負載均衡配置示例:
upstream backend {
#ip_hash;
server 192.168.1.251;
server 192.168.1.252;
server 192.168.1.247;
? }
server {
listen 80;
server_name trffweb;
location / {
#反向代理的地址
proxy_pass http://backend;
? }
}
Upstream命名和服務(wù)器地址根據(jù)實際情況修改匠璧。
5. 完整配置示例
nginx.conf:
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream backend {
#ip_hash;
server 192.168.1.251;
server 192.168.1.252;
server 192.168.1.247;
}
server {
listen 80;
server_name 2;
location / {
#設(shè)置主機頭和客戶端真實地址,以便服務(wù)器獲取客戶端真實IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
#禁用緩存
proxy_buffering off;
#反向代理的地址
proxy_pass http://backend;
? ?}
? }
}
作者:誰在烽煙彼岸
鏈接:http://www.reibang.com/p/5a2fd65c072f
來源:簡書
著作權(quán)歸作者所有咸这。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán)夷恍,非商業(yè)轉(zhuǎn)載請注明出處。