华为云弹性服务器Ubuntu20.04
实验内容在云端用docker composed的方式部署Nginx和tomcat实现负载均衡
具体包括:
- 要求部署一台Nginx和三台Tomcat服务器
- Nginx需要实现三种策略:轮询;权重,三台服务器的权重为1,2,5;IP Hash。
体现docker composed对 Docker 容器集群的快速编排
实验步骤 1.安装docker compose2.在home文件新建三个文件,nginx tomcat1 tomcat2 tomcat3curl -L https://get.daocloud.io/docker/compose/releases/download/v2.5.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose docker-compose –version
3.启动2个容器,nginx tomcat,将容器内的文件复制到本地/home下,1个nginx,3个tomcatmkdir tomcat1 tomcat2 tomcat3 nginx
4.修改tomcat的index.jsp文件内容docker run -itd --name nginx -p 80:80 nginx:1.19.3-alpine docker run -itd --name tomcat -p 8081:8080 tomcat:9.0.20-jre8-alpinedocker cp nginx:/etc/nginx /home/ docker cp tomcat:/usr/local/tomcat/webapps /home/tomcat1/webapps docker cp tomcat:/usr/local/tomcat/webapps /home/tomcat2/webapps docker cp tomcat:/usr/local/tomcat/webapps /home/tomcat3/webapps
5.修改nginx下的nginx.conf文件内容echo "tomcat1" > /home/tomcat1/webapps/ROOT/index.jsp echo "tomcat2" > /home/tomcat2/webapps/ROOT/index.jsp echo "tomcat3" > /home/tomcat3/webapps/ROOT/index.jsp(这里写错了,后面两个应该是“tomcat2”和“tomcat3”)
6.删除掉现在的容器vim nginx/nginx.conf以下内容为默认配置新增内容(注释掉的是ip hash和权重):
server { listen 80; location / { proxy_pass http://blance; } } upstream blance{ #ip_hash; server 121.37.68.105:8081; server 121.37.68.105:8082; server 121.37.68.105:8083; #server 121.37.68.105:8081 weight=1; #server 121.37.68.105:8082 weight=3; #server 121.37.68.105:8083 weight=5; }
7.新建vhost目录,并在该目录下配置docker-compose.yml文件docker rm -f nginx tomcat
8.通过compose启动容器注意:version一定要与自己的compose版本相同;volumes冒号左侧是本地路径,右侧是容器路径
version: '2.5' services: test-tomcat1: image: tomcat:9.0.20-jre8-alpine container_name: tomcat1 ports: - 8081:8080 volumes: - /home/tomcat1/webapps:/usr/local/tomcat/webapps depends_on: - test-nginx test-tomcat2: image: tomcat:9.0.20-jre8-alpine container_name: tomcat2 ports: - 8082:8080 volumes: - /home/tomcat2/webapps:/usr/local/tomcat/webapps depends_on: - test-nginx test-tomcat3: image: tomcat:9.0.20-jre8-alpine container_name: tomcat3 ports: - 8083:8080 volumes: - /home/tomcat3/webapps:/usr/local/tomcat/webapps depends_on: - test-nginx test-nginx: image: nginx:1.19.3-alpine container_name: testnginx restart: always ports: - 80:80 volumes: - /home/nginx/nginx.conf:/etc/nginx/nginx.conf
9.测试docker-compose up
写在最后可以通过浏览器访问IP进行测试:网页上会有之前写好的index.jsp文件中的内容,命令行会有相应的get(Ctrl+Z可以停止彩色的输出,但并不会停止容器):
也可以通过命令行测试:
while true; do wget -O - -q http://121.37.68.105:80; sleep 1; done
有问题欢迎在评论区讨论



