docker实现nginx反向代理、负载均衡
启动docker服务
systemctl start docker.server
查看docker镜像
docker images
拉取tomcat、nginx
docker pull tomcat
docker pull nginx
查看镜像
docker images
自定义名称运行三个容器
docker run -itd --name tomcat-1 -p 8081:8080 tomcat
docker run -itd --name tomcat-2 -p 8082:8080 tomcat
docker run -itd --name nginx-master -p 80:80 nginx
切换到tomacat-1容器的运行环境
docker exec -it tomcat-1 bash
ls -l
cd webapps
ls
mkdir a
cd a
apt-get update # 升级安装包
apt-get install vim -y #
echo 8081 > index.html
exit
切换到tomacat-2容器的运行环境
docker exec -it tomcat-2 bash
cd webapps
ls
mkdir b
cd b
apt-get update
apt-get install vim
echo 8082 > index.html
exit
切换到nginx-master容器的运行环境
docker exec -it nginx-master bash
whereis nginx
cd /etc/nginx/
cd conf.d/
apt-get update
apt-get install vim
ls
vim default.conf
location ~ /a {
proxy_pass http://192.168.0.8:8081; # 起代理
}
location ~ /b{
proxy_pass http://192.168.0.8:8082;
}
nginx -t
nginx -s reload
反向代理测试
curl http://192.168.0.8:8081/a/index.html
8081
curl http://192.168.0.8:8082/b/index.html
8082
配置负载均衡
cd ..
vim nginx.conf
在#gzip下面添加
upstream myserver {
server 192.168.0.8:8081;
server 192.168.0.8:8082;
}
nginx -t
cd conf.d/
ls
vim default.conf
把localtion删除一个 留一个
location / {
proxy_pass http://myserver;
}
nginx -t
nginx -s reload
exit
切换到tomcat-1容器的运行环境,webapps目录下创建共同目录ROOT
docker exec -it tomcat-1 bash
cd webapps
ls
mkdir ROOT
ls
cp a/index.html ROOT/
exit
切换到tomcat-2容器的运行环境,webapps目录下创建共同目录ROOT
docker exec -it tomcat-2 bash
cd webapps
ls
mkdir ROOT
ls
cp b/index.html /ROOT
exit
查看容器
docker ps
80端口测试 已经负载均衡了
curl 192.168.0.8:80
8081
curl 192.168.0.8:80
8082
curl 192.168.0.8:80
8081
curl 192.168.0.8:80
8082