首先簡單的介紹下修改默認的nginx
#location ~
分別訪問
這樣當我們訪問
訪問php頁面test
訪問目錄phpMyAdmin下的頁面的話
修改原始默認的nginx
#location ~
上面第一個部分location ^~ /phpMyAdmin/
2.在配置文件nginx.conf的http模塊中添加服務器集群server cluster的定義。Tw.wINGwIT.Com
upstream myCluster { server 192.168.2.3:8080 ; server 192.168.2.2:80 ; server 192.168.2.8:80 ;}
表示這個server cluster包含3台服務器
3.然後在server模塊中定義負載均衡
location ~ .php$ { proxy_pass http://myCluster ; proxy_redirect off; 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_pass http://myCluster ; 這裡的名字和上面的cluster的名字相同
配置好後,當訪問頁面,nginx目錄下根本沒有該文件,但是它會自動將其pass到myCluster定義的服務器群,分別由上述的3台服務器中的一台來做處理。
上面在定義upstream的時候每個server之後沒有定義權重,表示兩者均衡;如果希望某個更多響應的話,可以加weight
upstream myCluster { server 192.168.2.3:8080 weight=5; server 192.168.2.2:80 ; server 192.168.2.8:80 ;}
這樣表示5/7的幾率訪問第一個server,1/7訪問第二個、第三個。另外還可以定義max_fails和fail_timeout等參數。
所以我們使用nginx的反向代理服務器reverse proxy server的功能,將其布置到多台apache server的前端。
nginx僅僅用來處理靜態頁面響應和動態請求的代理pass,後台的apache服務器來對前台pass過來的動態頁面進行處理並返回給nginx。
實際應用中,各個服務器分別保留相同的程序和數據,需要考慮兩者的數據同步。
From:http://tw.wingwit.com/Article/program/Java/gj/201404/30499.html