Nginx之upstream模塊和proxy模塊簡單應用
Nginx在web服務中是一個很強大的工具,可以做靜態web服務,當然它的最常用的功能就是其負載均衡,下面只是應用nginx的upstream模塊和proxy模塊來做一個小實驗。在此體現的功能也只是冰山一角。
upstreem 使用注意:1、只能使用http上下文。2、各server只能直接使用IP或者主機名,不要加協議,在此次實驗中使用server IP的方式來代理其後端,其後端使用Apache,提供web服務。
實驗拓撲圖:
實驗配置
本實驗主要應用nginx的upstream模塊和proxy模塊。
upstream webservers {
server 192.168.1.117 weight=1 max_fails=2 fail_timeout=3;
server 192.168.1.119 weight=1 max_fails=2 fail_timeout=3;
server 127.0.0.1:8080 backup;
}
server {
listen 80; //此時server監聽在tcp/80端口。
server_name www.a.com;
location / {
root html;
index index.html index.htm;
proxy_pass http://webservers/;
proxy_set_header X-Real-IP $remote_addr;
}
}
server {
listen 8080;
server_name 127.0.0.1;
root /www/backup;
}
下面對以上選項說明。
set_header X-Real-IP $remote_addr; //是代理向上遊發服務器送首部
add_header X-via $server_addr //是代理向客戶端發送的首部。
weight=# : //權重
max_fails=# : //最大失敗嘗試次數,默認爲1。
fail_timeout=time: //失敗嘗試的超時時長,默認爲10s。
backup : //當其他服務都掛掉,會自動轉到此頁。但是當任何一節點上線backup都不會上線。
實驗測試
配置完成就可以做下測試,在其後端兩臺主機上添加測試頁面。而後都要啓動httpd服務。訪問nginx服務器的IP:192.168.1.118
刷新頁面
當同時停掉後端兩臺服務器時,再次刷新服務。