Tomcat集群由多个tomcat组成,使用Nginx的好处是可以实现负载均衡和动静分离。 使用Docker的好处是~~~我们不需要复杂的配置,只需要执行简单的命令就能拉取已有的官方docker镜像,再通过一条命令就能运行我们的实例了。对于多个Tomcat,我们使用相同的镜像,然后使用简单的命令,就能创建不同的tomcat container实例。

1.拉去镜像

$ docker pull tomcat:8-jre8-alpine
$ docker pull nginx:latest
$ docker images

2.创建tomcat文件夹和webapps的交换文件夹,并创建container

$ docker run --name tomcat1 -p 18080:8080 -v $PWD/webapps:/usr/local/tomcat/webapps  -d tomcat:8-jre8-alpine
# cc8d9b8bc8a90d0768df15f94ae2cb37694021cf637d0610d10eaee669b0d5bad
$ docker run --name tomcat2 -p 28080:8080 -v $PWD/webapps:/usr/local/tomcat/webapps  -d tomcat:8-jre8-alpine
# 711e6a6fd1a3f6d088b8b6f527b9c558114bdd5e1592b03a18cb3abaaaf08815

创建nginx文件夹。

$ docker run --name tmp-nginx-container -d nginx
$ docker cp tmp-nginx-container:/etc/nginx/nginx $PWD/conf
$ docker cp mynginx:/usr/share/nginx/html $PWD/html
$ docker cp mynginx:/var/log/nginx  $PWD/logs
$ docker rm -f tmp-nginx-container

运行nginx

$ docker run -p 80:80 -p 8080:8080 --name mynginx -v $PWD/html:/usr/share/nginx/html -v $PWD/conf:/etc/nginx -v $PWD/logs:/var/log/nginx -d nginx

-p 18080:8080:将容器的8080端口映射到主机的18080端口 -v 挂载目录 具体参数命令可自行google,都是些简单的常用命令。

$ docker container ls

3. 将自己的项目放入本地的webapps目录下 为了便于区分工程,我的项目主页获取了本地的IP和端口,分别使用18080和28080访问test项目,可以得到如下图所示信息。 4.设置Nginx配置文件 chrome访问服务器80端口,显示如下: Nginx的配置文件是nginx.conf,打开文件夹,发现里边并没有配置端口等信息,而是有一段:

include /etc/nginx/conf.d/*.conf;

这是将conf.d目录下的所有配置文件全部加入进来。其中这个欢迎页面的设置就是在其目录下的一个名叫default.conf的文件中设置的。 模仿此文件,我们创建自己的tomcat.conf。 然后自己配置信息相关信息。 5. 测试 输入nginx地址和tomcat server 8080端口. 多次输入我们可以发现我们对应的tomcat地址会发生变化,这就是访问到了不同的tomcat。 6.后期扩展 我们可以修改不同的均衡策略,比如修改weight值,和设置备份服务器等方式来实现不同的功能。 除了负载均衡,我们还可以进行将静态文件和动态文件进行分离,这也是Nginx的重要功能之一。