Nginx使用反向代理实现负载均衡过程解析
简介
基于docker容器以及docker-compose,所以需要自学docker在linux环境的基本使用
使用两个tomcat作为负载均衡的服务端
1.使用docker拉取tomcat和nginx镜像
拉取nginx参考
拉取tomcat参考
2.使用docker-compose创建两个tomcat服务
新建tomcat目录,在该目录下创建docker-compose.yml文件,输入如下内容:
version:'3' services: tomcat1: image:tomcat container_name:tomcat1 ports: -9090:8080 tomcat2: image:tomcat container_name:tomcat2 ports: -9091:8080
在该docker-compose.yml同一目录下运行如下命令启动容器(-d表示后台运行)
docker-composeup-d
成功后查看docker容器列表
命令
dockerps
结果示例有tomcat1和tomcat2两个容器
CONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTSNAMES 271dd3610d1dtomcat"catalina.shrun"58minutesagoUp58minutes0.0.0.0:9091->8080/tcptomcat2 fa19d20f0022tomcat"catalina.shrun"58minutesagoUp58minutes0.0.0.0:9090->8080/tcptomcat1
以交互的方式进入容器,修改首页内容,以便区分两个tomcat(下面已tomcat为例)
命令
dockerexec-itfa19d20f0022bash
向首页追加内容
echo"9090">>webapps/ROOT/index.jsp
3.创建nginx服务
新建nginx目录,在该目录下创建docker-compose.yml文件,输入如下内容:
version:'3.1' services: nginx: restart:always image:nginx container_name:nginx ports: -81:80 volumes: -./conf/nginx.conf:/etc/nginx/nginx.conf
由于docker-compose自动会将/conf/nginx.conf作为文件夹处理,所以需要在创建容器前,在nginx目录下,创建conf目录,在conf目录下,创建nginx.conf文件,并输入如下内容:
usernginx; worker_processes1; events{ worker_connections1024; } http{ upstreammyapp1{ server[服务器ip]:9090weight=10; server[服务器ip]:9091weight=10; } server{ listen80; server_name[服务器ip]; location/{ proxy_passhttp://myapp1; } } }
在docker-compose.yml同一目录下运行
docker-composeup-d
4.访问[服务器ip]:81网址,多刷新几次,观察两个tomcat服务之间的切换
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。