nginx+docker同一服務器上部署多個docker實現負載均衡


在提到負載均衡的時候,大多數人都是想着幾台服務器甚至幾十台服務器組成一個群組

也就是橫向拓展服務器來實現負載均衡吧

但是還有一種情況是縱向拓展

也就是當你的項目在一台服務器上占用的資源很少,其實是可以在同一台服務器上部署多個項目來實現負載均衡的

這里利用nginx+docker來實現同一台服務器實現負載均衡

這里用的服務器是Linux centos

一,搭建nginx

這個步驟比較簡單,可以自己百度一下,也可以參考我寫的另外一篇博客

http://blog.csdn.net/wsbgmofo/article/details/78771255

二,創建一個docker項目

1,搭建docker環境,直接yum install docker

2,創建本地項目

這里用java寫的一個小程序,分別輸入以下內容,分別打成2個jar包

jar包1:

 

jar包2:

 

然后把這2個jar包上傳到服務器

3,在你存放項目的路徑創建一個名為Dockerfile的文件

vim Dockerfile

在文件里輸入以下內容

#基礎鏡像
FROM java:8
#把你的項目jar包引入到容器的root目錄下
ADD jar包1.jar /root
#項目的啟動方式
ENTRYPOINT ["java","-jar","/root/jar包1.jar"]

這里例子比較簡單,所以Dockerfile的語句比較少

4,創建鏡像

docker build -t docker1 .

創建成功后,再把文件里的jar包1.jar換成jar包2.jar

這樣就創建了2個鏡像

可以先運行鏡像,然后訪問下看看效果

docker run -d -p 8005:7000 docker1

docker run -d -p 8006:7000 docker2

然后瀏覽器輸入ip:端口訪問,如下圖

 

 

三,修改nginx配置文件

1,在nginx的conf目錄下找到nginx.conf進行編輯,如下圖

 

修改監聽端口,自定義

新增框起來的內容,upstream里面的內容是你同一台服務器上部署的多個docker的IP和端口

2,啟動nginx並輸入IP和nginx的端口,效果如下圖

 

 

當其中一個docker容器掛掉的時候,nginx就不會再分配給那個容器了,當所有docker容器都掛掉了你的服務才無法繼續訪問

說到這里也有人會問如果是直接服務器掛掉了呢

確實會有這種情況發生,所以要根據實際情況來決定采用幾台服務器,然后在這些服務器上部署多個docker容器就好了

這樣至少能保證一台服務器掛了還會有其他服務器可以繼續訪問,至於要多少服務器就根據實際的業務情況來考慮


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM