tomcat与nginx之间实现多级代理

准备工作

准备5台虚拟主机;至少准备3台虚拟主机;

设备1作为代理服务器;设备2与设备4作为处理静态资源请求服务器(使用nginx);设备3与设备5作为处理动态资源服务器(使用tomcat)

设备1配置:

复制代码
yum -y install epel-release#安装epel包
yum -y install nginx#安装nginx作为代理服务器
vim /etc/nginx/nginx.conf
[#server模块下
upstream web {
server 虚拟主机2IP地址;
server 虚拟主机4IP地址;
}

#http模块下
location / {
proxy_pass http://web;
}
]

设备2配置:

复制代码
yum -y install epel-release
yum -y install nginx 
vim /etc/nginx/nginx.conf
[
location ~* \.jsp$ {
proxy_pass http://主机3IP地址:8080;#虚拟主机3使用tomcat端口号为8080
}
]

vim /usr/share/nginx/html/index.html
{自定义内容}

设备4配置:

复制代码
yum -y install epel-release
yum -y install nginx 
vim /etc/nginx/nginx.conf
[
location ~* \.jsp$ {
proxy_pass http://主机3IP地址:8080;#虚拟主机5使用tomcat端口号为8080
}
]

vim /usr/share/nginx/html/index.html
{自定义内容}

设备3配置:

#准备apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm 2个压缩包

rpm -ivh jdk-8u201-linux-x64.rpm

#安装jkd

复制代码
vim /etc/profile
{
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
}
source /etc/profile

tar xf apache-tomcat-9.0.16.tar.gz#解压tomcat
cp -r apache-tomcat-9.0.16 /usr/local/tomcat#复制tomcat到/usr/local/tomcat/
useradd -s /sbin/nologin tomcat#创建一个不可登录的用户
chown tomcat:tomcat /usr/local/tomcat/ -R#改变/usr/local/tomcat/下所有文件的用户为tomcat

vim /usr/lib/systemd/system/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
}
systemctl daemon-reload#重新读取service文件
systemctl start tomcat#使用systemctl启动tomcat
systemctl status tomcat#查看tomcat状态

ln -s /usr/local/tomcat/bin/* /usr/bin#制作软连接使得可以随时使用tomcat

vim /usr/local/tomcat/webapps/ROOT/index.jsp

{自定义内容}

设备5配置:

#准备apache-tomcat-9.0.16.tar.gz jdk-8u201-linux-x64.rpm 2个压缩包

rpm -ivh jdk-8u201-linux-x64.rpm #安装jkd

复制代码
vim /etc/profile
{
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
}
source /etc/profile

tar xf apache-tomcat-9.0.16.tar.gz#解压tomcat
cp -r apache-tomcat-9.0.16 /usr/local/tomcat#复制tomcat到/usr/local/tomcat/
useradd -s /sbin/nologin tomcat#创建一个不可登录的用户
chown tomcat:tomcat /usr/local/tomcat/ -R#改变/usr/local/tomcat/下所有文件的用户为tomcat

vim /usr/lib/systemd/system/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
}
systemctl daemon-reload#重新读取service文件
systemctl start tomcat#使用systemctl启动tomcat
systemctl status tomcat#查看tomcat状态

ln -s /usr/local/tomcat/bin/* /usr/bin#制作软连接使得可以随时使用tomcat

vim /usr/local/tomcat/webapps/ROOT/index.jsp

{自定义内容}

验证:

使用浏览器访问设备1,查看是否会在设备2的自定义内容与设备4的自定义内容之间跳转;再使用浏览器访问设备1的index.jsp文件,查看是否会在设备3的自定义内容与设备5的自定义内容之间跳转。

若是可以反复跳转,那么实验完成。

访问虚拟主机1:

访问虚拟主机1的/index.jsp:

相关推荐
漫漫不慢.13 分钟前
算法练习-二分查找
java·开发语言·算法
还是鼠鼠22 分钟前
《黑马商城》Elasticsearch基础-详细介绍【简单易懂注释版】
java·spring boot·spring·elasticsearch·搜索引擎·spring cloud·全文检索
牧羊人_myr37 分钟前
Maven核心功能与项目构建详解
java·maven
量子物理学1 小时前
Eclipse Mosquitto 在小内存下怎么修改配置文件
java·服务器·eclipse
程序员鱼皮1 小时前
让老弟做个数据同步,结果踩了 7 个大坑!
java·后端·计算机·程序员·编程·职场
麦兜*1 小时前
Redis 7.2 新特性实战:Client-Side Caching(客户端缓存)如何大幅降低延迟?
数据库·spring boot·redis·spring·spring cloud·缓存·tomcat
Iris7611 小时前
MyBatis一对多关系映射方式
java
程序员清风1 小时前
滴滴二面:MySQL执行计划中,Key有值,还是很慢怎么办?
java·后端·面试
白鲸开源1 小时前
3.1.8<3.2.0<3.3.1,Apache DolphinScheduler集群升级避坑指南
java·开源·github
huohaiyu2 小时前
synchronized (Java)
java·开发语言·安全·synchronized