暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Docker + Nginx + Tomcat 负载均衡企业实战

墨迹测试开发 2020-12-15
1052

示意图:

Docker&Nginx&Tomcat

1)Docker构建Tomcat发布Jforum论坛;
2)Nginx负载均衡Tomcat集群&Rewrite规则;

1、Docker构建Tomcat发布Jforum论坛

1)Docker是众多虚拟化技术(VMware ESXI、KVM、XEN、Open-vz、Hyper-v)其中一款软件,Docker虚拟化技术是目前互联网IT企业使用最多的虚拟化技术软件,其特点:轻量级、高性能、安全、稳定、管理方便等。

2)Docker虚拟化技术主要为了解决企业轻量级操作系统和应用容器而诞生的,其产物是Docker容器,Docker容器也被称为轻量级的虚拟机。

3)基于CentOS7.x Linux操作系统(Linux内核版本:3.10+),从0开始构建了一套Docker虚拟化平台,部署的版本为:Docker-19.03.8,如图所示:

4)Docker虚拟化平台创建一台Tomcat WEB容器,要求Tomcat容器内部只包含Tomcat软件程序,启动Tomcat服务进程,对外监听8080端口,并且发布Jforum论坛程序。(Jforum基于JAVA语言开发的网站程序)

5)在Docker官方仓库中搜索Tomcat镜像文件,镜像文件中包含Tomcat软件程序,操作的方法和指令如下:

docker search tomcat8


6)从Docker官方仓库中下载Tomcat镜像文件,下载至Docker宿主机特定目录,操作的方法和指令如下:

docker pull ashince/tomcat8

echo $?


7)查看已下载Tomcat镜像文件的存储路径和镜像列表信息,操作的方法和指令如下:

ls -l /var/lib/docker/image/overlay2/

docker images|grep -aiE tomcat


8)基于Tomcat镜像创建一台Tomcat容器,对外监听8080端口,同时发布Jforum论坛程序,操作的方法和指令如下:

docker run -itd -p 8080:8080 --name=jfedu-web01 --privileged -v /data/webapps/jforum/:/usr/local/tomcat/webapps/ROOT/ ashince/tomcat8:latest

  • n Run,全新创建并且启动一台容器(轻量级虚拟机);

  • n -i,interactive打开交互模式;

  • n -t,tty打开登录终端;

  • n -d,detach后台运行;

  • n -p,publish发布端口,将宿主机8080映射至虚拟机的8080(Iptables+DNAT);

  • n --name,指定或者自定义容器的名称;

  • n --privileged,开启超级特权模式,支持更多指令操作。

  • n -v,开启目录映射,将宿主机目录:/data/webapps/jforum/
    映射至容器的发布目录:/usr/local/tomcat/webapps/ROOT/

9)查看Tomcat容器的运行状态和IP地址;

docker ps

docker inspect 7b61f05a7148|grep -ai ipaddr|tail -1

docker inspect 7b61f05a7148|grep -ai ipaddr|tail -1|cut -d"\"" -f4

docker inspect 7b61f05a7148|grep -ai ipaddr|tail -1|awk -F\" '{print $4}'

docker inspect 7b61f05a7148|grep -ai ipaddr|tail -1|sed 's/://g;s/,//g;s/ //g;s/IPAddress//g;s/"
//g'

docker inspect 7b61f05a7148|grep -ai ipaddr|tail -1|grep -aiowE "([0-9]{1,3}\.){3}[0-9]{1,3}"


10)根据如上操作,Tomcat WEB平台部署成功,通过浏览器直接访问宿主机IP+8080端口,如图所示:

http://118.31.55.30:8080/

11)将宿主机的Jforum软件程序,部署至Tomcat发布目录,因为创建Tomcat容器时,将宿主机目录:/data/webapps/jforum/
映射至容器发布目录:/usr/local/tomcat/webapps/ROOT/
,现在只需要将Jforum程序部署至宿主机:/data/webapps/jforum/
即可。

12)Jforum是基于JAVA语言开发的动态论坛网站程序,默认论坛程序需要连接后端数据库,所以需提前部署MYSQL|Mariadb数据库平台,并且创建Jforum论坛所需库名称、授权用户名和密码访问。

#创建MYSQL数据库平台;  
docker run -itd -p 3307:3306  --name=jfedu-db01 --privileged 717160040/mysql5.5  
#进入MYSQL数据库容器中;  
docker exec -it 97a73dbac06c  /bin/bash  
#进入MYSQL库中创建jforum库  
create database jforum charset=utf8;  
#并且授权172.17.0.x网段所有IP,通过jforum用户和1qaz@WSX密码可以访问jforum库所有数据;  
grant all on jforum.* to  jforum@'172.17.0.%' identified by "1qaz@WSX";  flush privileges;

13)根据如上的jforum论坛操作方法,jforum论坛部署成功,如图所示:

2、Nginx负载均衡Tomcat集群&Rewrite规则

1)根据如上Tomcat发布Jforum论坛,默认通过浏览器可以直接访问了,在企业生产环境中,在一台服务器上通常会部署多个Tomcat实例,提高Tomcat整体并发性能,提高宿主机资源利用率。Docker部署Tomcat多实例的指令如下:

docker run -itd -p 8081:8080 --name=jfedu-web02 --privileged -v /data/webapps/jforum/:/usr/local/tomcat/webapps/ROOT/ ashince/tomcat8:latest




END

时光,在物转星移中渐行渐远,春花一梦,流水无痕,没有在最想做的时候去做的事情,都是人生的遗憾。人生需要深思熟虑,也需要一时的冲动。

文章转载自墨迹测试开发,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论