Docker部署Nginx、Tomcat集羣

Tomcat集羣由多個tomcat組成,使用Nginx的好處是可以實現負載均衡和動靜分離。
使用Docker的好處是~~~我們不需要複雜的配置,只需要執行簡單的命令就能拉取已有的官方docker鏡像,再通過一條命令就能運行我們的實例了。對於多個Tomcat,我們使用相同的鏡像,然後使用簡單的命令,就能創建不同的tomcat container實例。

Docker部署Nginx、Tomcat集羣
1.拉去鏡像

$ docker pull tomcat:8-jre8-alpine
$ docker pull nginx:latest
$ docker images

Docker部署Nginx、Tomcat集羣
2.創建tomcat文件夾和webapps的交換文件夾,並創建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

創建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

運行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端口映射到主機的18080端口
-v 掛載目錄
具體參數命令可自行google,都是些簡單的常用命令。

$ docker container ls

Docker部署Nginx、Tomcat集羣

  1. 將自己的項目放入本地的webapps目錄下
    爲了便於區分工程,我的項目主頁獲取了本地的IP和端口,分別使用18080和28080訪問test項目,可以得到如下圖所示信息。
    Docker部署Nginx、Tomcat集羣
    Docker部署Nginx、Tomcat集羣
    4.設置Nginx配置文件
    chrome訪問服務器80端口,顯示如下:
    Docker部署Nginx、Tomcat集羣
    Nginx的配置文件是nginx.conf,打開文件夾,發現裏邊並沒有配置端口等信息,而是有一段:
    include /etc/nginx/conf.d/*.conf;

    這是將conf.d目錄下的所有配置文件全部加入進來。其中這個歡迎頁面的設置就是在其目錄下的一個名叫default.conf的文件中設置的。
    模仿此文件,我們創建自己的tomcat.conf。
    然後自己配置信息相關信息。
    Docker部署Nginx、Tomcat集羣

  2. 測試
    輸入nginx地址和tomcat server 8080端口.
    Docker部署Nginx、Tomcat集羣
    多次輸入我們可以發現我們對應的tomcat地址會發生變化,這就是訪問到了不同的tomcat。
    Docker部署Nginx、Tomcat集羣
    6.後期擴展
    我們可以修改不同的均衡策略,比如修改weight值,和設置備份服務器等方式來實現不同的功能。
    除了負載均衡,我們還可以進行將靜態文件和動態文件進行分離,這也是Nginx的重要功能之一。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章