使用docker构建。通过nginx反向代理到不同的Tomcat中:
在docker中构建两个tomcat是比较简单的只需要安装好docker和docker-compose即可,如有不明白的可以参看我前面的文章:
使用docker构建不同的tomcat:
version: '3'
services:
tomcat1:
image: tomcat
container_name: tomcat1
ports:
- 9090:8080
tomcat2:
image: tomcat
container_name: tomcat2
ports:
- 9091:8080
通过docker-compose up来进行对其加载:通过访问9090和9091即可看到两个tomcat实例。使用docker容器化构建相比上篇的比较简单,没有其他的繁杂的配置信息。docker完全给代理化,省去了我们的构建的繁琐步骤。
docker下使用nginx反向代理不同的tomcat:
需要在/usr/local/docker文件中创建一个tomcat文件夹,创建docker-compose.yml进行管理配置tomcat的使用,
先启动这里启动docker-compose up -d
然后在创建nginx文件夹,创建wwwroot目录和创建conf/nginx.conf目录
(1) 启动两个tomcat:在dokcer-compose.yml 编辑:
version: '3'
services:
tomcat1:
image: tomcat
container_name: tomcat1
ports:
- 9090:8080
tomcat2:
image: tomcat
container_name: tomcat2
ports:
- 9091:8080
(2) 在 /usr/local/docker/nginx/conf 目录下的 nginx.conf 配置文件:
user nginx;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 配置一个代理即 tomcat1 服务器
upstream tomcatServer1 {
server 192.168.75.145:9090;
}
# 配置一个代理即 tomcat2 服务器
upstream tomcatServer2 {
server 192.168.75.145:9091;
}
# 配置一个虚拟主机
server {
listen 80;
server_name admin.service.itoken.funtl.com;
location / {
# 域名 admin.service.itoken.funtl.com 的请求全部转发到 tomcat_server1 即 tomcat1 服务上
#可以直接书写tomcat的路径即可
proxy_pass http://tomcatServer1;
# 欢迎页面,按照从左到右的顺序查找页面
index index.jsp index.html index.htm;
}
}
server {
listen 80;
server_name admin.web.itoken.funtl.com;
location / {
# 域名 admin.web.itoken.funtl.com 的请求全部转发到 tomcat_server2 即 tomcat2 服务上
proxy_pass http://tomcatServer2;
index index.jsp index.html index.htm;
}
}
}
(3)启动nginx在docker-compose.yml中配置:
version: '3'
services:
# nexus:
# image: 'sonatype/nexus3'
# restart: always
# container_name: nexus
# ports:
# - '8081:8081'
# volumes:
# - '/usr/local/docker/nexus/data:/nexus-data'
nignx:
restart: always
image: nginx
container_name: nginx
ports:
- '8088:8088'
- '9000:9000'
- '80:80'
volumes:
- '/usr/local/docker/nginx/conf/nginx.conf:/etc/nginx/nginx.conf'
- '/usr/local/docker/nginx/wwwroot:/usr/share/nginx/wwwroot'
这里的如果想通过域名来访问需要在本机的hosts文件中配置 路径和 域名,通过以上域名即可进行访问到,下篇讲述如何构建nginx