環境:Ubuntu 12.04 虛擬機
代理服務器IP地址:192.168.128.128
web1服務器地址:192.168.128.129 部署Nginx
web2服務器地址:192.168.128.130 部署Nginx
修改/etc/nginx/nginx.conf配置反向代理
- #在http{}代碼塊增加以下內容,每行均以;結尾
- #mysvr2爲代理地址池名稱,可隨便取
- upstream server_pool {
- #第一個web服務器地址,weight爲權重值,值越大訪問概率越大
- server 192.168.128.129:80 weight=1;
- server 192.168.128.130:80 weight=2;
- }
- 在server{}代碼塊增加以下內容
- location / {
- proxy_pass http://server_pool;
- }
重啓nginx
如果配置文件沒有錯誤,nginx可以正常重啓,如果報錯可根據報錯信息定位行解決問題。 此時訪問192.168.128.128將定向至192.168.128.130,如果192.168.128.130出現故障,nginx將重定向至192.168.128.129 nginx支持的負載均衡有: 1、輪詢 每個請求按時間順序逐一分配到不同的後端服務器,如果後端服務器down掉,能自動剔除。 2、weight
- sudo /etc/init.d/nginx stop
- sudo /etc/init.d/nginx start
指定輪詢機率,weight和訪問比率成正比,用於後端服務器性能不均的情況down : 當前的IP server暫時不參與負載,不進行反向代理
weight: 默認爲1,weight越大,負載的權重越大
max_fails: 允許請求失敗的次數默認爲1,當超過最大次數時,返回proxy_next_upstream模塊定義的錯誤。
fail_timeout : max_fails次失敗後,暫停的時間
backup: 其它所有非backup機器down或者忙時候,請求backup機器,這臺機器壓力最輕
PS: nginx支持同時設置多組負載均衡,給不同的server使用
location:設置對URL進行匹配,比如 location / , location /data 這兩個設置優先級,/ 下也可以,但是不如 /data下搜索更快,定位更準。