基於一臺物理機,部署1台Nginx均衡2台Tomcat,通過存取Host OS的80埠,能夠存取Tomcat容器中的測試頁面;
1.基於Docker引擎啓動3個Docker容器,首先下載Nginx和Tomcat映象:
docker pull docker.io/nginx
docker pull docker.io/tomcat
2.其中一個爲Nginx容器,並且對外對映80:80埠規則,啓動Nginx容器:
docker run -itd -p 80:80 docker.io/nginx:latest
docker ps -a
docker inspect 6479f569d49e|grep -i ipaddr
3.另外兩臺爲Tomcat容器,啓動Tomcat容器(無需對映埠):
docker run -itd docker.io/tomcat:latest
docker run -itd docker.io/tomcat:latest
4.檢視2台Tomcat容器的IP地址,並且記錄IP地址;
docker inspect `docker ps -a|grep tomcat|awk '{print $1}'`|grep -i ipaddr|grep -oE "([0-9]{1,3}\.){3}[0-9]{1,3}"|sort|uniq
5.設定Nginx均衡2台Tomcat,實現負載均衡+反向代理,操作方式如下:
#進入Nginx容器;
docker exec -it 6479f569d49e /bin/bash
#進入Nginx WEB組態檔目錄;
cd /etc/nginx/conf.d/
#排除#和空行的程式碼;
grep -vE "#|^$" default.conf
1)通過sed或者cat將新內容寫入default.conf檔案中後回車;
cat>default.conf<<EOF
upstream tomcat_web {
server 172.17.0.3:8080 weight=100 max_fails=2 fail_timeout=15;
server 172.17.0.4:8080 weight=100 max_fails=2 fail_timeout=15;
}
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
proxy_set_header Host \$host;
proxy_pass http://tomcat_web;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
EOF
2)寫入完成後檢查內容是否正確:使用cat default.conf命令檢查:
3)修改替換未成功的部分參數:
sed -i 's/default.conf/\t/g' default.conf
4)重新啓動Nginx服務:
nginx -t
nginx -s reload
5)瀏覽器存取Nginx均衡的2台Tomcat:
實現目的:當其中一臺tomcat掛掉時,另一臺可以繼續保持存取