基于Docker如何部署Tomcat集群、 Nginx负载均衡
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,这篇文章主要介绍了基于Docker如何部署Tomcat集群、 Nginx负载均衡,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。结构图:
千家信息网最后更新 2025年01月20日基于Docker如何部署Tomcat集群、 Nginx负载均衡
这篇文章主要介绍了基于Docker如何部署Tomcat集群、 Nginx负载均衡,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。
结构图:
这里仅作为一种学习,一般这种负载的话,Nginx
是放到主机侧
的, JavaWeb(Tomcat)
应用放到容器里。
效果
新建文件夹。
D=uag;mkdir $D;cd $D;mkdir uag_nginx uag_tomcat8; ls uag_nginx uag_tomcat8
一,Ngixn 镜像制作
cd uag_nginx/# 用于存放配置文件mkdir nginxvim Dockerfile
Dockerfile 文件内容
FROM nginxLABEL maintainer="uag"ENV REFRESHED_AT 2021-08-27EXPOSE 8099
构建nginx配置文件内容
这个的配置文件,在容器运行的时候通过 -v
参数与 容器内部共享。方便后期参数更改
cd ./nginxvim nginx.conf
nginx.conf 配置文件内容
user nginx;worker_processes auto;error_log /var/log/nginx/error.log notice;pid /var/run/nginx.pid;daemon off;events { worker_connections 1024;}http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$upstream_addr - $remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; server { listen 8099; server_name localhost; root /var/www/html/; index index.html index.htm; access_log /var/log/nginx/default_access.log main; error_log /var/log/nginx/default_error.log; location / { proxy_pass http://backend; } location ~ .* { proxy_pass http://backend; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } # 这里配置负载 upstream backend { server 172.23.231.190:8069; server 172.23.231.190:8079; server 172.23.231.190:8089;}}
配置负载:172.23.231.190
为宿主机IP,8069,8079,8089为对应的Java Web 暴露的应用端口。
# 这里配置负载 upstream backend { server 172.23.231.190:8069; server 172.23.231.190:8079; server 172.23.231.190:8089;}
构建Nginx镜像
docker build -t uag/uag_nginx .
二,java Web(Tomcat)应用镜像构建
cd uag_tomcat8/vim Dockerfile
Dockerfile 文件内容
FROM dordoka/tomcatMAINTAINER LIRUILONGCOPY UAWeb.war /opt/tomcat/webapps/UAWeb.warEXPOSE 8080ENTRYPOINT [ "/opt/tomcat/bin/catalina.sh", "run" ]
上传对应的War包
lsDockerfile UAWeb.war
构建镜像
docker build -t uag/uag_tomcat .
三,运行容器 Nginx镜像
docker run -d -p 8099:8099 --name uag_nginx -v $PWD/nginx/nginx.conf:/etc/nginx/nginx.conf uag/uag_nginx nginx
java Web(Tomcat)镜像
docker run -it -d -p 8089:8080 --name uag_app_1 uag/uag_tomcat docker run -it -d -p 8079:8080 --name uag_app_2 uag/uag_tomcat docker run -it -d -p 8069:8080 --name uag_app_3 uag/uag_tomcat
查看运行的容器
浏览器访问
查看负载方式:新进程的方式
查看负载方式:-volumes-from 方式
Dockerfile文件
FROM nginxLABEL maintainer="uag"ENV REFRESHED_AT 2021-08-27VOLUME /var/log/nginx/EXPOSE 80
┌──(liruilong㉿Liruilong)-[/mnt/e/docker/uag/uag_nginx]└─$ docker run -it --rm --volumes-from nginx_log centos cat /var/log/nginx/default_access.log172.23.231.190:8069 - 172.17.0.1 - - [30/Aug/2021:12:55:02 +0000] "GET /UAWeb/services/listServices HTTP/1.1" 200 12660 "http://127.0.0.1:8099/UAWeb/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" "-"172.23.231.190:8079 - 172.17.0.1 - - [30/Aug/2021:12:55:02 +0000] "GET /UAWeb/axis2-web/css/axis-style.css HTTP/1.1" 200 1587 "http://127.0.0.1:8099/UAWeb/services/listServices" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" "-"172.23.231.190:8069 - 172.17.0.1 - - [30/Aug/2021:12:55:02 +0000] "GET /UAWeb/axis2-web/images/asf-logo.gif HTTP/1.1" 200 5866 "http://127.0.0.1:8099/UAWeb/services/listServices" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" "-"172.23.231.190:8079 - 172.17.0.1 - - [30/Aug/2021:12:55:02 +0000] "GET /UAWeb/axis2-web/images/axis_l.jpg HTTP/1.1" 200 12340 "http://127.0.0.1:8099/UAWeb/services/listServices" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" "-"172.23.231.190:8089 - 172.17.0.1 - - [30/Aug/2021:12:55:03 +0000] "GET /UAWeb/services/listServices HTTP/1.1" 200 12660 "http://127.0.0.1:8099/UAWeb/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.159 Safari/537.36" "-"172.23.231.190:8069 - 172.17.0.1 - - [30/Aug/2021:12:55:03 +0000] "GET /UAWeb/axis2-web/images/asf-logo.gif HTTP/1.1" 200 5866 "http://127.0.0.1:8099/UAWeb/services/listServices" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92
构建好镜像上传仓库:
嗯,需要注册一个Docker Hub账号
,然后登录,需要镜像前面加 账户名/
┌──(liruilong㉿Liruilong)-[/mnt/e/docker/uag/uag_nginx]└─$ docker push liruilong/nginx_logThe push refers to repository [docker.io/liruilong/nginx_log]An image does not exist locally with the tag: liruilong/nginx_log┌──(liruilong㉿Liruilong)-[/mnt/e/docker/uag/uag_nginx]└─$ docker tag 9c9af0362eb9 liruilong/nginx_log┌──(liruilong㉿Liruilong)-[/mnt/e/docker/uag/uag_nginx]└─$ docker push liruilong/nginx_logThe push refers to repository [docker.io/liruilong/nginx_log]fb04ab8effa8: Pushed8f736d52032f: Pushed009f1d338b57: Pushed678bbd796838: Pushedd1279c519351: Pushedf68ef921efae: Pushedlatest: digest: sha256:2af7e8aeab84e8a816caf6b0342e1a45f95c7089ff52578040ea3a4c28a943c7 size: 1570┌──(liruilong㉿Liruilong)-[/mnt/e/docker/uag/uag_nginx]└─$ docker push liruilong/nginx_log:tagname # 拉去镜像
感谢你能够认真阅读完这篇文章,希望小编分享的"基于Docker如何部署Tomcat集群、 Nginx负载均衡"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!
镜像
文件
配置
容器
内容
方式
篇文章
应用
运行
均衡
集群
参数
学习
主机
仓库
价值
兴趣
同时
宿主
宿主机
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发教程视频 有哪些
大话西游手游服务器等级
cad软件开发商
预言网络安全态势
网络安全是指什么需要保护
软件开发实训室注意事项
学习手机软件开发
西安软件开发需要多少钱
用数据库检索时遇到的问题
网络安全10强
18年网络安全的主题是什么
h2 数据库 远程连接
软件开发过程编码阶段
宜兴重型软件开发价格实惠
网络技术对教育影响
阿里云服务器能退货吗
天融信 数据库审计说明书
四川企业软件开发正规平台
安徽计算机应用软件开发哪家便宜
服务器上安装什么浏览器好
服务器端渲染框架
静安区口碑好的软件开发有哪些
网络安全保卫系宣传片
服务器升级内存
备份软件能备份数据库吗
力航网络技术有限公司
vivos1pro网络技术
网络安全教育演讲稿幼儿园
动员部署网络安全
数据库的建表规范