当前位置: 首页 > news >正文

使用docker 搭建nginx + tomcat 集群

  • 创建3个Tomcat容器,端口分别映射到 8080,8081,8082,使用数据卷挂载,分别将宿主机目录下的
    /opt/module/docker/tomcat3/ROOT1/,/opt/module/docker/tomcat3/ROOT2/,/opt/module/docker/tomcat3/ROOT2/ 挂载到 容器内部的tomcat目录下的webapps目录。实现挂载的好处如下:
  1. 数据共享: 同一份数据可以被挂载到多个容器
  2. 容器删除了但是数据还在,更安全。

docker run -d --name tomcat-8080 -p8080:8080 -v /opt/module/docker/tomcat3/ROOT1/:/usr/local/tomcat/webapps/ tomcat

docker run -d --name tomcat-8081 -p8081:8080 -v /opt/module/docker/tomcat3/ROOT2/:/usr/local/tomcat/webapps/ tomcat

docker run -d --name tomcat-8082 -p8082:8080 -v /opt/module/docker/tomcat3/ROOT3/:/usr/local/tomcat/webapps/ tomcat

分别访问三个端口

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • docker 启动nginx

docker run -d --name nginx-8000 -p 8000:80 ngxin

访问

在这里插入图片描述

进入到nginx容器内部,找到Nginx的配置文件

在这里插入图片描述

使用cp命令,将容器中的nginx配置文件复制到宿主机上

docker cp 9s2:/etc/nginx/nginx.conf /opt/module/docker/nginx/

修改配置文件,做负载均衡


user  nginx;
worker_processes  auto;error_log  /var/log/nginx/error.log notice;
pid        /var/run/nginx.pid;events {worker_connections  1024;
}http {include       /etc/nginx/mime.types;default_type  application/octet-stream;log_format  main  '$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;upstream backend {  server 192.168.240.131:8080;  server 192.168.240.131:8081;  server 192.168.240.131:8082;  }server {  listen 80;  location / {  proxy_pass http://backend;  proxy_set_header Host $host;  proxy_set_header X-Real-IP $remote_addr;  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  proxy_set_header X-Forwarded-Proto $scheme;  }  }  	#include /etc/nginx/conf.d/*.conf;
}

此时重启nginx,将ngxin的配置文件挂载到宿主机

docker run -d --name ngxin-8000 -p 8000:80 -v /opt/module/docker/nginx/nginx.conf:/etc/nginx/nginx.conf nginx

由于nginx的端口映射到了宿主机的8000,此时访问8000,就相当于在负载均衡的访问3台tomcat

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Docker创建一个容器是秒级启动,同时支持挂载,端口映射等,通过此也可以发现Docker的强大,尤其是搭建负载均衡,快速扩容和缩容等。

http://www.lryc.cn/news/107524.html

相关文章:

  • 从Spring的角度看Memcached和Redis及操作
  • 【C语言学习】C语言的基础数据类型
  • 使用AIGC工具提升安全工作效率
  • HBase概述
  • el-popover全屏不显示(bug记录)
  • react中使用redux-persist做持久化储存
  • 【leetcode】203. 移除链表元素(easy)
  • InfiniBand、UCIe相关思考
  • [C++项目] Boost文档 站内搜索引擎(3): 建立文档及其关键字的正排 倒排索引、jieba库的安装与使用...
  • el-date-picker回显问题解决记录
  • Linux中的特殊进程(孤儿进程、僵尸进程、守护进程)
  • 【分布式能源选址与定容】光伏、储能双层优化配置接入配电网研究(Matlab代码实现)
  • 《cuda c编程权威指南》04 - 使用块和线程索引映射矩阵索引
  • mysql 、sql server 常见的区别
  • 查找特定元素——C++ 算法库(std::find_if)
  • D3JS教程_编程入门自学教程_菜鸟教程-免费教程分享
  • Android入门教程||Android 架构||Android 应用程序组件
  • C语言二进制数据和16进制字符串互转
  • 技术复盘(5)--git
  • GDAL C++ API 学习之路 (5) Spatial Reference System篇 OGRSpatialReference类
  • 2023年华数杯数学建模C题思路代码分析 - 母亲身心健康对婴儿成长的影响
  • WebAgent-基于大型语言模型的代理程序
  • 智慧~经典开源项目数字孪生智慧商场——开源工程及源码
  • LeetCode--剑指Offer75(1)
  • C++ 关于大端模式和小端模式的简析
  • 嵌入式:C高级 Day2
  • iPhone 7透明屏的显示效果怎么样?
  • 【C++】—— 多态常见的笔试和面试问题
  • 探寻AI大模型平台之巅——文心千帆
  • 【springboot】RestTemplate配置HttpClient连接池