Nginx實現反向代理與負載均衡


 1.什么是反向代理

使用nginx實現反向代理,Nginx只做請求的轉發,后台有多個http服務器提供服務,nginx的功能就是把請求轉發給后面的服務器,決定把請求轉發給誰。

2.在一個虛擬機上創建兩個tomcat實例,模擬多個服務器。

  Nginx反向代理就是通過訪問不同的域名訪問運行在不同端口的tomcat ,這里在hosts文件 中配置 www.test80.com 和 www.test82.com兩個域名,

對應的ip都是我虛擬機上的安裝了nginx的centos系統的ip地址192.168.93.130,通過模擬Nginx反向代理,實現 www.test80.com 訪問運行8080端口的tomcat,www.test82.com訪問運行8082端口的tomcat

2.1 在線安裝tomcat

[root@localhost local]# su liuch

[liuch@localhost local]$ ls

bin  etc  games  include  lib  lib64  libexec  nginx  nginx-1.16.0  nginx-1.16.0.tar.gz  sbin  share  src

[liuch@localhost local]$ su root

Password:

[root@localhost local]#  wget https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz --no-check-certificate

--2019-06-16 06:13:43--  https://mirrors.cnnic.cn/apache/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz

Resolving mirrors.cnnic.cn... 101.6.8.193, 2402:f000:1:408:8100::1

Connecting to mirrors.cnnic.cn|101.6.8.193|:443... connected.

WARNING: certificate common name *.tuna.tsinghua.edu.cndoesnt match requested host name mirrors.cnnic.cn.

HTTP request sent, awaiting response... 200 OK

Length: 9711748 (9.3M) [application/x-gzip]

Saving to: apache-tomcat-8.5.42.tar.gz

 

100%[==========================================================================================================>] 9,711,748   1.45M/s   in 6.4s    

 

2019-06-16 06:13:50 (1.44 MB/s) - apache-tomcat-8.5.42.tar.gzsaved [9711748/9711748]

 

[root@localhost local]# ls

 

apache-tomcat-8.5.42.tar.gz  bin  etc  games  include  lib  lib64  libexec  nginx  nginx-1.16.0  nginx-1.16.0.tar.gz  sbin  share  src

 

[root@localhost local]# 

 

2.2 解壓

2.3 創建tomcats目錄並復制兩個tomcat

2.4修改tomcat配置(在同一台機器上運行兩個tomcat,需要設置tomcat的端口不同

修改tomcat2server.xml

  

2.5修改tomcat首頁,以區分兩個tomcat

   

2.6 啟動tomcat,並開放8082端口(直接訪問 192.168.93.130:8082會訪問不通,被攔截器攔住了)

開放8082端口:

訪問測試

 

3. 配置Nginx反向代理

在上面的基礎上,配置nginx的反向代理服務,這時nginx僅僅是做請求轉發

 /usr/local/nginx/sbin/nginx -s reload 重新加載nginx配置文件后 測試,可以看到域名為www.test80.com的請求,被轉發到了端口號為8080的tomcat服務器上

來自www.test82.com的請求,被轉發到了端口號為8082的tomcat服務器上:

 

4.模擬nginx 負載均衡配置

如果在同一個域名下有多台服務器提供服務,此時需要nginx來進行負載均衡。

Nginx負載均衡服務器:192.168.93.130

Tomcat1服務器:192.168.93.130:8080

Tomcat2服務器:192.168.93.130:8082,在前面的基礎上,nginx.conf配置稍作如下改動:把tomcatserver2 的反向代理配置及proxy_pass注釋掉,

在tomcatserver1下面添加一台服務器 server  192.168.93.130:8082; 即可

此時訪問http://www.test80.com/ ,可以看到8080端口的tomcat1,8082端口的tomcat2輪流處理請求:(nginx默認的負載均衡策略是輪詢)

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM