nginx80端口转发到多个tomcat

网友投稿 985 2022-11-20

nginx80端口转发到多个tomcat

nginx80端口转发到多个tomcat

文章目录

​​前言​​​​1.linux安装docker​​​​2.docker安装nginx和映射外部文件​​​​3.docker 安装2个tomcat​​

​​使用临时tomcat容器把初始日志和webapps,conf文件放入外部目录tomcat8081和tomcat8082下​​​​建立tomcat8081和tomcat8082 两个容器​​​​测试:​​

​​分别在tomcat8081和tomcat8082容器上建一个项目.​​​​测试​​

​​4.nginx80端口转发​​

​​测试80端口转发​​

前言

之前有个需求,一个tomcat里面放置了多个项目,但是每次部署都得重启一个tomcat,导致多个项目都得重启。

怎么解决呢:

​​思路​​​: 配置多个tomcat,每个tomcat里面放置一个项目就不会相互干扰了。 具体​​​做法1​​​: Linux上安装多个tomcat,但是这样得总修改tomat的配置文件,烦。​​​做法2(推荐)​​: 基于docker,docker部署多个tomcat映射不同的端口就好了,不用每次都修改配置文件,然后tomcat向外映射logs,和webapps目录就可以了。

为啥使用nginx的80端口转发这几个tomcat呢?

1.linux安装docker

2.docker安装nginx和映射外部文件

3.docker 安装2个tomcat

使用临时tomcat容器把初始日志和webapps,conf文件放入外部目录tomcat8081和tomcat8082下

建个临时的tomcat容器

​​docker run -d --name tmp-tomcat tomcat​​

现在将这临时容器的logs和webapps的文件拷贝到tomcat8081和tomcat8082目录下.

首先查看,容器中的logs和webapps的位置:

​​docker exec -it tmp-tomcat bash​​

拷贝到外部目录tomcat8081下:

​​docker cp tmp-tomcat:/usr/local/tomcat/logs /docker/tomcat8081/​​

​​docker cp tmp-tomcat:/usr/local/tomcat/webapps /docker/tomcat8081/​​

看下外部目录tomcat8081是否有文件了:

删除临时容器.

建立tomcat8081和tomcat8082 两个容器

​​docker run -d -p 8081:8080 --name tomcat8081 -v /docker/tomcat8081/logs:/usr/local/tomcat/logs -v /docker/tomcat8081/webapps:/usr/local/tomcat/webapps -e TZ="Asia/Shanghai" --privileged=true tomcat​​​​docker run -d -p 8082:8080 --name tomcat8082 -v /docker/tomcat8082/logs:/usr/local/tomcat/logs -v /docker/tomcat8082/webapps:/usr/local/tomcat/webapps -e TZ="Asia/Shanghai" --privileged=true tomcat​​

测试:

tomcat8081访问没问题:

tomcat8082访问没问题:

分别在tomcat8081和tomcat8082容器上建一个项目.

tomat8081上建立一个demo1的项目。里面只有一个index.html

tomcat8081 这是tomcat8081页面

tomat8081上建立一个demo2的项目。里面只有一个index.html

tomcat8082 这是tomcat8082页面

测试

重启项目,看下是否可以访问demo1和demo2项目;

在tomcat8081容器部署的demo1项目访问没问题:

在tomcat8082容器部署的demo2项目访问没问题:

4.nginx80端口转发

最关键的一步来了。

配置nginx.conf文件

访问80端下的demo1的url就转发到​​http://本地ip:8081/demo1​​,也就是tomcat8081下的demo1项目;

访问80端下的demo2的url就转发到​​http://本地ip:8082/demo2​​,也就是tomcat8082下的demo2项目;

从而实现了对外只暴露80端口,不暴露tomcat的真实端口。

测试80端口转发

tomcat8081的8081端口的demo1项目访问到了,成功。

tomcat8082的8082端口的demo2项目访问到了,成功。

至此,大功告成!!

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:.net(c#)版RSA加密算法,拿走不谢
下一篇:springboot原理实战(1)--注解方式装配bean
相关文章

 发表评论

暂时没有评论,来抢沙发吧~