当前位置: 首页 > backend >正文

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/profiletar 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/下所有文件的用户为tomcatvim /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/profiletar 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/下所有文件的用户为tomcatvim /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:

http://www.xdnf.cn/news/5806.html

相关文章:

  • DeepSeek、B(不是百度)AT、科大讯飞靠什么坐上中国Ai牌桌?
  • css iconfont图标样式修改,js 点击后更改样式
  • 哈希表:数据世界的超级索引
  • 基于深度学习的工业OCR数字识别系统架构解析
  • 机器学习 --- 特征工程(一)
  • Spring Boot 使用 OSHI 实现系统运行状态监控接口
  • Conda在powershell终端中无法使用conda activate命令
  • docker及docker-compose安装及使用
  • mac 10.15.7 svn安装
  • 设计模式系列(02):设计原则(一):SRP、OCP、LSP
  • Visual Studio 2022 跨网络远程调试
  • 多线程(二)
  • 【2025年前端高频场景题系列】使用同一个链接,如何实现PC打开是web应用、手机打是-个H5 应用?
  • 免费Office图片音频高效提取利器
  • ik 分词器 设置自定义词典
  • @Component 注解:Spring 组件扫描与管理的基石
  • 如何使用 WebBrowserPassView 查看所有浏览器密码?
  • 【WordPress博客AI内容辅助生成/优化工具箱插件下载无标题】
  • 语义分割模型部署到嵌入式终端的通用操作流程
  • journalctl 日志查看工具介绍
  • istringstream的简化源码详解
  • 热部署与双亲委派
  • pclinuxos系统详解
  • 应急响应靶机——WhereIS?
  • CRM和SCRM有什么区别
  • python实现usb热插拔检测(windows)
  • Android Framework
  • LWIP传输层协议笔记
  • Git 用法总结
  • 微信小程序原生swiper高度自适应图片,不同屏幕适配,正方形1:1等比例图片轮播