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.cn” doesn’t 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.gz” saved [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的端口不同)
修改tomcat2的server.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默認的負載均衡策略是輪詢)