練習(xí):創(chuàng)建基于Docker的Nginx盏筐、Tomcat集群搭建方法收厨。
Tomcat集群由多個tomcat組成晋柱,使用Nginx的好處是可以實(shí)現(xiàn)負(fù)載均衡和動靜分離。
使用Docker的好處是~~~我們不需要復(fù)雜的配置诵叁,只需要執(zhí)行簡單的命令就能拉取已有的官方docker鏡像雁竞,再通過一條命令就能運(yùn)行我們的實(shí)例了。對于多個Tomcat拧额,我們使用相同的鏡像碑诉,然后使用簡單的命令彪腔,就能創(chuàng)建不同的tomcat container實(shí)例。
image.png
1.拉去鏡像
$ docker pull tomcat:8-jre8-alpine
$ docker pull nginx:latest
$ docker images
image.png
2.創(chuàng)建tomcat文件夾和webapps的交換文件夾进栽,并創(chuàng)建container
$ docker run --name tomcat1 -p 18080:8080 -v $PWD/webapps:/usr/local/tomcat/webapps -d tomcat:8-jre8-alpine
# cc8d9b8bc8a90d0768df15f94ae2cb37694021cf637d0610d10eaee669b0d5bad
$ docker run --name tomcat2 -p 28080:8080 -v $PWD/webapps:/usr/local/tomcat/webapps -d tomcat:8-jre8-alpine
# 711e6a6fd1a3f6d088b8b6f527b9c558114bdd5e1592b03a18cb3abaaaf08815
創(chuàng)建nginx文件夾漫仆。
$ docker run --name tmp-nginx-container -d nginx
$ docker cp tmp-nginx-container:/etc/nginx/nginx $PWD/conf
$ docker cp mynginx:/usr/share/nginx/html $PWD/html
$ docker cp mynginx:/var/log/nginx $PWD/logs
$ docker rm -f tmp-nginx-container
運(yùn)行nginx
$ docker run -p 80:80 -p 8080:8080 --name mynginx -v $PWD/html:/usr/share/nginx/html -v $PWD/conf:/etc/nginx -v $PWD/logs:/var/log/nginx -d nginx
- -p 18080:8080:將容器的8080端口映射到主機(jī)的18080端口
- -v 掛載目錄
具體參數(shù)命令可自行g(shù)oogle,都是些簡單的常用命令泪幌。
$ docker container ls
image.png
3. 將自己的項(xiàng)目放入本地的webapps目錄下
為了便于區(qū)分工程盲厌,我的項(xiàng)目主頁獲取了本地的IP和端口,分別使用18080和28080訪問test項(xiàng)目祸泪,可以得到如下圖所示信息吗浩。
tomcat1.png
tomcat2.png
4.設(shè)置Nginx配置文件
chrome訪問服務(wù)器80端口,顯示如下:
image.png
Nginx的配置文件是nginx.conf没隘,打開文件夾懂扼,發(fā)現(xiàn)里邊并沒有配置端口等信息,而是有一段:
include /etc/nginx/conf.d/*.conf;
這是將conf.d目錄下的所有配置文件全部加入進(jìn)來右蒲。其中這個歡迎頁面的設(shè)置就是在其目錄下的一個名叫default.conf的文件中設(shè)置的阀湿。
模仿此文件,我們創(chuàng)建自己的tomcat.conf瑰妄。
然后自己配置信息相關(guān)信息陷嘴。
image.png
5. 測試
輸入nginx地址和tomcat server 8080端口.
image.png
多次輸入我們可以發(fā)現(xiàn)我們對應(yīng)的tomcat地址會發(fā)生變化,這就是訪問到了不同的tomcat间坐。
image.png
6.后期擴(kuò)展
- 我們可以修改不同的均衡策略灾挨,比如修改weight值,和設(shè)置備份服務(wù)器等方式來實(shí)現(xiàn)不同的功能竹宋。
- 除了負(fù)載均衡劳澄,我們還可以進(jìn)行將靜態(tài)文件和動態(tài)文件進(jìn)行分離,這也是Nginx的重要功能之一蜈七。