熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java高級技術 >> 正文

Nginx反向代理實現負載均衡配置圖解

2022-06-13   來源: Java高級技術 
負載均衡配置是超大型機器需要考慮的一些問題同時也是數據安全的一種做法下面我來介紹在nginx中反向代理 負載均衡配置圖解大家可參考本文章來操作

首先簡單的介紹下修改默認的nginxconf大概在~去掉前面的#號重啟nginx

 

#location ~ php$ {# proxy_pass ;#}改為 location ~ php$ { proxy_pass http://:;}

分別訪問出現如下圖已經能夠針對不同請求訪問服務器了

 

點擊查看原圖

這樣當我們訪問l的時候前端的nginx會自動進行響應當訪問/testphp的時候(這個時候nginx目錄下根本就沒有該文件)但是通過上面的設置location ~ php$(表示

訪問php頁面testphp:的Apache進行響應

訪問目錄phpMyAdmin下的頁面的話: 的Apache進行響應

修改原始默認的nginxconf的server模塊部分(大概在~行)

#location ~ php$ {# proxy_pass ;#}修改為 location ^~ /phpMyAdmin/ { proxy_pass : ;} location ~ php$ { proxy_pass : ;}

 

上面第一個部分location ^~ /phpMyAdmin/表示不使用; index index

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

    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.