nginx+tomcat實(shí)現(xiàn)多級(jí)反向代理的示例代碼
  更新時(shí)間:2025年07月15日 10:09:39   作者:俗_人   
                        本文介紹在CentOS系統(tǒng)下安裝Tomcat、配置虛擬主機(jī)多級(jí)目錄,并通過Nginx反向代理將請(qǐng)求轉(zhuǎn)發(fā)至指定IP,構(gòu)建多級(jí)代理拓?fù)鋵?shí)現(xiàn)負(fù)載均衡與訪問控制,感興趣的可以了解一下
                        1、tomcat的安裝 (centos版本)
1.1 安裝Java依賴環(huán)境
[root@localhost ~]# rz -E rz waiting to receive. [root@localhost ~]# ls anaconda-ks.cfg jdk-8u201-linux-x64.rpm 模板 圖片 下載 桌面 initial-setup-ks.cfg 公共 視頻 文檔 音樂 [root@localhost ~]# rpm -ivh jdk-8u201-linux-x64.rpm #安裝成功 [root@localhost ~]# cd /usr/java/ [root@localhost java]# ls default jdk1.8.0_201-amd64 latest [root@localhost java]# #添加環(huán)境變量 [root@localhost java]# vim /etc/profile #添加內(nèi)容 ## export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64 export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export PATH=$JAVA_HOME/bin:$PATH ## [root@localhost java]# source /etc/profile [root@localhost java]# java -version java version "1.8.0_201" Java(TM) SE Runtime Environment (build 1.8.0_201-b09) Java HotSpot(TM) 64-Bit Server VM (build 25.201-b09, mixed mode) #添加成功 [root@localhost java]#
1.2 安裝tomcat
具體操作步驟如下
[root@localhost opt]# rz -E rz waiting to receive. #拖入相關(guān)安裝包 [root@localhost opt]# ls apache-tomcat-9.0.16.tar.gz rh [root@localhost opt]# tar -xf apache-tomcat-9.0.16.tar.gz #解壓 [root@localhost opt]# ls apache-tomcat-9.0.16 apache-tomcat-9.0.16.tar.gz rh [root@localhost opt]# cp -r apache-tomcat-9.0.16 /usr/local/tomcat #復(fù)制到系統(tǒng)路徑 [root@localhost opt]# cd /usr/local/tomcat/ [root@localhost tomcat]# ls bin conf lib logs README.md RUNNING.txt webapps BUILDING.txt CONTRIBUTING.md LICENSE NOTICE RELEASE-NOTES temp work [root@localhost tomcat]# cd bin/ [root@localhost bin]# ls bootstrap.jar commons-daemon-native.tar.gz makebase.sh tomcat-juli.jar catalina.bat configtest.bat setclasspath.bat tomcat-native.tar.gz catalina.sh configtest.sh setclasspath.sh tool-wrapper.bat catalina-tasks.xml daemon.sh shutdown.bat tool-wrapper.sh ciphers.bat digest.bat shutdown.sh version.bat ciphers.sh digest.sh startup.bat version.sh commons-daemon.jar makebase.bat startup.sh [root@localhost bin]# /usr/local/tomcat/bin/startup.sh #以catlina的方式啟動(dòng) Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@localhost bin]# /usr/local/tomcat/bin/shutdown.sh #以catlina的方式關(guān)閉 Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/java/jdk1.8.0_201-amd64 Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@localhost bin]# #創(chuàng)建tomcat用戶,更改其屬組 [root@localhost bin]# useradd -s /sbin/nologin tomcat [root@localhost bin]# chown -R tomcat:tomcat /usr/local/tomcat [root@localhost bin]# #配置service文件,可以使用systemctl托管 [root@localhost system]# vim tomcat.service [root@localhost system]# systemctl daemon-reload [root@localhost system]# systemctl restart tomcat [root@localhost system]# systemctl status tomcat #service文件配置 [Unit] Description=Tomcat After=syslog.target network.target [Service] Type=forking ExecStart=/usr/local/tomcat/bin/startup.sh ExecStop=/usr/local/tomcat/bin/shutdown.sh RestartSec=3 PrivateTmp=true User=tomcat Group=tomcat [Install] WantedBy=multi-user.target #配置軟鏈接 [root@localhost system]# ln -s /usr/local/tomcat/bin/* /usr/bin
安裝完成

2、tomcat的虛擬主機(jī)的配置
2.1 配置多級(jí)目錄
[root@localhost data]# echo "abc" > abc/ROOT/index.html
[root@localhost data]# echo "def" > def/ROOT/index.html
[root@localhost data]# echo "xyz" > xyz/ROOT/index.html
[root@localhost data]# tree
.
├── abc
│?? └── ROOT
│??     └── index.html
├── def
│?? └── ROOT
│??     └── index.html
└── xyz
    └── ROOT
        └── index.html
#找到主站點(diǎn)配置目錄
[root@localhost data]# cd /usr/local/tomcat/
[root@localhost tomcat]# ls
bin           conf             lib      logs    README.md      RUNNING.txt  webapps
BUILDING.txt  CONTRIBUTING.md  LICENSE  NOTICE  RELEASE-NOTES  temp         work
[root@localhost tomcat]# cd conf/
[root@localhost conf]# ls
Catalina             context.xml           logging.properties  tomcat-users.xsd
catalina.policy      jaspic-providers.xml  server.xml          web.xml
catalina.properties  jaspic-providers.xsd  tomcat-users.xml
[root@localhost conf]# vim server.xml 
[root@localhost conf]# 
#添加三個(gè)站點(diǎn)目錄
      <Host name="www.abc.com"  appBase="/data/abc" unpackWARs="true" autoDeploy="true">
      </Host>
      <Host name="www.def.com"  appBase="/data/def" unpackWARs="true" autoDeploy="true">
      </Host>
      <Host name="www.xyz.com"  appBase="/data/xyz" unpackWARs="true" autoDeploy="true">
      </Host>
#測試訪問虛擬主機(jī) -- 成功
[root@localhost data]# curl www.abc.com:8080
abc
[root@localhost data]# curl www.def.com:8080
def
[root@localhost data]# curl www.xyz.com:8080
xyz
3、利用nginx的反向代理實(shí)現(xiàn)將轉(zhuǎn)發(fā)指向一個(gè)虛擬機(jī)

| 機(jī)器 | IP地址 | 
|---|---|
| pc | 192.168.107.192 | 
| nginx | 192.168.107.10 | 
| tomcat | 192.168.107.12 | 
3.1 nginx服務(wù)器的配置
#安裝nginx(略)
[root@localhost ~]# vim /etc/nginx/nginx.conf
#加入下面這三行(server模塊)
location / {
        proxy_pass  http://www.def.com:8080/;
    }
vim /etc/hosts
192.168.107.12  www.abc.com  www.def.com  www.xyz.com
3.2 客戶端配置
vim /etc/hosts 192.168.107.10 www.abc.com www.def.com www.xyz.com #檢測訪問 [root@localhost ~]# curl 192.168.107.10 abc [root@localhost ~]# curl 192.168.107.10 abc [root@localhost ~]# curl 192.168.107.10 abc [root@localhost ~]# curl 192.168.107.10 abc [root@localhost ~]# curl 192.168.107.10 abc [root@localhost ~]# curl 192.168.107.10 abc [root@localhost ~]# curl 192.168.107.10 def [root@localhost ~]# curl 192.168.107.10 def [root@localhost ~]# curl 192.168.107.10 def [root@localhost ~]# curl 192.168.107.10 def [root@localhost ~]# curl 192.168.107.10 def [root@localhost ~]# curl 192.168.107.10 def #成功
4、 反向多級(jí)代理
拓?fù)鋱D如下
代理服務(wù)器操作
yum install  nginx -y
systemctl  start  nginx
vim  /etc/nginx/nginx.conf
  upstream  web {
    server 192.168.91.101;
    server 192.168.91.102;
   }
location  / {
        proxy_pass  http://web/;
}
nginx  -s reload
nginx 1 服務(wù)器
yum install  nginx -y
systemctl  start  nginx
vim  /etc/nginx/nginx.conf
 location ~  \.(jpg|html|png|css)$ {
        root         /usr/share/nginx/html;
         }
        location ~  \.jsp$ {
         proxy_pass http://192.168.91.103:8080;
         }
echo  7-2  > /usr/share/nginx/html/index.html
nginx 2 服務(wù)器
yum install  nginx -y
systemctl  start  nginx
vim  /etc/nginx/nginx.conf
 location ~  \.(jpg|html|png|css)$ {
        root         /usr/share/nginx/html;
         }
        location ~  \.jsp$ {
         proxy_pass http://192.168.91.105:8080;
         }
echo  7-3  > /usr/share/nginx/html/index.html
tomcat 1 服務(wù)器
安裝tomcat echo 7-4 > /usr/local/tomcat/webapps/ROOT/test.jsp
tomcat 2 服務(wù)器
安裝tomcat echo 7-5 > /usr/local/tomcat/webapps/ROOT/test.jp
結(jié)果展示




到此這篇關(guān)于nginx+tomcat實(shí)現(xiàn)多級(jí)反向代理的示例代碼的文章就介紹到這了,更多相關(guān)nginx tomcat 多級(jí)反向代理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
                                您可能感興趣的文章:
                        - Nginx+Tomcat反向代理與負(fù)載均衡的實(shí)現(xiàn)
 - Nginx反向代理轉(zhuǎn)發(fā)tomcat的實(shí)現(xiàn)
 - Tomcat獲取Nginx反向代理的客戶端域名
 - nginx https反向代理tomcat的2種實(shí)現(xiàn)方法
 - 詳解Linux中Nginx反向代理下的tomcat集群
 - 詳解Nginx反向代理到Tomcat服務(wù)器
 - 詳解Nginx + Tomcat 反向代理 負(fù)載均衡 集群 部署指南
 - 簡單實(shí)現(xiàn)nginx+tomcat的反向代理與動(dòng)靜分離
 - Nginx為Tomcat服務(wù)器作反向代理的配置教程
 

