docker 部署nginx+tomcat实现负载均衡

注意:先安装docker  我这边已经安装好docker

1、拉取nginx 和 tomcat的镜像

docker pull  nginx

docker pull  tomcat

2、启动两个容器实例

docker run -d -p 80:80 --name nginx1 nginx

docker run -d -p 8080:8080 --name=tomcat1 tomcat 

3、进入容器进行修改

注意:我这边用的是最新版的tomcat所以无法直接访问tomcat的web页面,必须要替换一下才可以访问

docker exec -it 容器id bash                      #进入tomcat容器

rm -rf webapps                                         #删除webapps 

mv webapps.dist/  webapps                    #改名

4、将容器内部文件拷贝到宿主机

mkdir /opt/data                                                                    #创建nginx存放目录

docker cp 容器id:/etc/nginx /opt/data/nginx                        #拷贝nginx 的配置文件

mkdir /opt/tomcat1                                                             #创建tomcat1的存放目录

mkdir /opt/tomcat2                                                             #创建tomcat2的存放目录

docker  cp 容器id:/usr/local/tomcat/conf  /opt/tomcat1/     #拷贝配置文件到tomcat1

docker  cp 容器id:/usr/local/tomcat/webapps  /opt/tomcat1/ #拷贝web文件到tomcat1

docker  cp 容器id:/usr/local/tomcat/conf  /opt/tomcat2/     #拷贝配置文件到tomcat2

docker  cp 容器id:/usr/local/tomcat/webapps  /opt/tomcat2/  #拷贝web文件到tomcat2

5、修改tomcat1的web页面防止弄混

vim /opt/tomcat1/webapps/ROOT/index.jsp

将输出的内容改为tomcat1=8080

6、修改tomcat2的配置文件内的端口

vim /opt/tomcat2/conf/server.xml

7、将我们之前启动的tomcat容器删除防止端口争抢而报错

docker ps

 docker stop 容器id

 docker rm 容器id

8、启动两个tomcat容器实例

docker run -d --name tomcat1 -p 8080:8080 -v /opt/tomcat1/conf/:/usr/local/tomcat/conf/ -v /opt/tomcat1/webapps/:/usr/local/tomcat/webapps/ tomcat

docker run -d --name tomcat2 -p 9090:9090 -v /opt/tomcat2/conf/:/usr/local/tomcat/conf/ -v /opt/tomcat2/webapps/:/usr/local/tomcat/webapps/ tomcat

9、在浏览器打开检查

查看tomcat1 本机IP加8080端口

查看tomcat2 本机IP加9090端口

10、启动成功后在nginx的http模块下配置如下

注意我们在上面的操作中已经将nginx的配置文件拷贝到/opt/data/nginx中所以我们可以直接在宿主机进行修改配置

vim data/nginx/nginx.conf

upstream www.sy.com{

server 172.17.0.3:8080 weight=5;

server 172.17.0.4:9090 weight=10;

}

注意:如果不知道容器IP可用以下命令查看

docker inspect 容器ID

因为我在本地进行了hosts解析所以直接写的域名如果不配置解析可直接写IP

11、修改conf.d/default.comf配置文件

vim /opt/data/nginx/conf.d/defaulf.conf

12、将我们之前启动的nginx容器删除并启动新的nginx容器

docker stop 容器id

docker rm  容器id

docker run -d -p 80:80 --name nginx1 -v /opt/data/nginx/:/etc/nginx nginx

13、在浏览器进行访问

http://IP:80

通过反馈会发现会在两个页面之间进行跳转

当然我们通过域名访问也是可以的

www.sy.com

proxy_pass配置upstream对象即可;

这样就可以实现负载均衡,我们请求nginx服务器地址,不断刷新请求,就会在两台tomcat机器进行跳转显示内容,达到负载均衡的目的。

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
项目名称:自助洗车平台 项目背景:随着汽车保有量的不断增长,洗车市场逐渐形成。但传统洗车方式存在排污、耗水、人工成本高等问题,自助洗车成为一种新兴的洗车方式。本项目旨在建立一个自助洗车平台,方便消费者进行自主洗车,减少传统洗车方式的不利影响。 项目职责: 1. 架构设计:设计并实现自助洗车平台的架构,包括前端、后端、数据库、缓存、负载均衡、日志等组件的选择和配置。其中,Nginx 负责反向代理和负载均衡Tomcat 负责处理业务逻辑,keepalived 实现高可用性,redis 缓存常用数据,MySQL 存储洗车记录,inotify+rsync 实现文件同步,ELK 实现日志管理和分析。 2. 系统开发:基于 Spring Boot 框架,使用 Java 语言开发自助洗车平台的后端系统,实现洗车订单管理、设备管理、用户管理、支付管理等功能。同时,使用 Vue.js 开发前端页面,实现用户注册、登录、下单、支付等功能。 3. 数据库设计:设计并实现 MySQL 数据库,建立洗车订单表、设备信息表、用户信息表、支付记录表等,实现数据的存储和管理。 4. 缓存设计:使用 Redis 缓存常用数据,如用户信息、设备状态等,提高系统的响应速度和并发能力。 5. 日志管理:使用 ELK(Elasticsearch、Logstash、Kibana)实现日志的收集、分析和管理,方便运维人员进行系统监控和问题排查。 6. 系统部署:使用 Docker 镜像技术,将自助洗车平台的各个组件打包成镜像,并使用 Kubernetes 进行容器编排和部署实现系统的高可用性和自动化运维。 7. 系统监控:使用 Zabbix 实现系统监控,包括 CPU、内存、磁盘、网络等性能指标的监控和告警,保障系统的稳定性和可靠性。 项目收益: 1. 提高用户体验:通过自助洗车平台,消费者可以方便、快捷地进行洗车,提高用户体验和满意度。 2. 减少人工成本:自助洗车平台减少了人工操作和管理成本,提高了洗车效率和经济效益。 3. 降低环境污染:自助洗车平台的洗车方式较传统方式更为环保,减少了水资源和废水排放,降低了环境污染。 4. 提高系统运维效率:通过自动化运维和日志管理,减少人工操作,提高系统稳定性和运维效率。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值