基於docker+nginx搭建到nacos集群的艱難之旅


1.搭建環境介紹

     簡介:適用於初學者將容器微服務知識的整合練手,考慮到學習成本,前期只有一台雲服務器(ECS)

     如果環境不同請謹慎借鑒,可能涉及到的配置不同會導致搭建過程失敗。

     騰訊雲服務器一台(2核4G)

     docker環境(安裝教程-->https://www.cnblogs.com/HubuSugar/p/14376388.html)

     nginx鏡像(說明:nginx是用容器運行起來的)

     nacos集群(說明:是在ECS上運行起來具有3個節點的集群)

2.nacos集群搭建

    1.前置條件:nacos集群是微服務的服務注冊和配置中心,一些動態配置肯定是需要保存到持久化介質上的(本例中是一台mysql服務器)

    2.到阿里巴巴nacos官網下載nacos的centos版本的tar包(地址:鏈接:https://pan.baidu.com/s/1im-nqLZKdY3hpPm9DFm5Kw  提取碼:su06),然后上傳ECS服務器/usr/software目錄下進行解壓,結果如圖

tar -zxvf nacos-server-1.1.4.tar.gz

    

  解壓后目錄結構如下

 

 3.進入conf目錄修改集群配置和數據庫配置 注意習慣:修改前先備份文件

   在conf目錄下的application.properties文件末尾加上數據庫配置如下,如下圖

spring.datasource.platform=mysql

db.num=1
db.url.0=jdbc:mysql://mysql-IP:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=root
db.password=123456

   

 

   接着修改cluster.conf文件,如下圖 注意:此處如果是同一台ECS服務器上使用不同端口搭建的nacos集群,配置的是服務器的公網IP或者是使用hostname -i顯示的ip地址(本次是127.0.0.1)

***.***.***.***:8847
***.***.***.***:8848
***.***.***.***:8849

 

4.修改nacos的啟動腳本支持以不同的端口號啟動,並且可以適當將以集群啟動的JVM配置調下點(默認是-Xms 2g -Xmm2g -Xmn1g),否則有可能出現集群啟動很慢或者啟動不了的情況注意習慣:修改前先備份文件

 以及配置文件末尾處

 

 4.分別以三個配置的端口啟動nacos集群

./startup  -p 8847
./startup  -p 8848
./startup  -p 8849

5.測試發現三台nacos集群均能訪問了

3.nginx配置以及反向代理設置

 1.從docker Hub拉去nginx鏡像

docker pull nginx

2.暫時先運行nginx容器(-p命令將容器的80端口映射到宿主機的8060端口)

docker run -d --name mynginx -p 8060:80 nginx

3.已交互式命令進入nginx容器里面,查看nginx內部重要的配置文件的掛載路徑

docker exec -it nginx /bin/bash

  /etc/nginx/nginx.conf 是容器內部 nginx.conf  文件的路徑

  /etc/nginx/conf.d/default.conf 是容器內部 default.conf 文件的路徑

 /usr/share/nginx/html 是nginx啟動默認html文件的路徑

 /var/log/nginx  是nginx的訪問日志

 知道了容器內文件的位置,在啟動容器時可以將文件掛載到宿主機上便於修改

4.在宿主機的 /data目錄下創建 三個目錄用於掛載以上文件(注意掛載前還需要將容器內的已有配置復制到本地)

mkdir -p ./mydata/nginx/{conf.d,html,logs}
docker cp nginx:/etc/nginx/nginx.conf  ./        
dokcer cp nginx:/etc/nginx/conf.d/default.conf  ./conf.d/

結果如下圖

5.關閉並刪除上面運行的nginx容器,然后重新啟動容器

docker  stop  nginx
docker rm nginx
docker run -d --name nginx -p 8060:80  -v /data/mydata/nginx/nginx.conf:/etc/nginx/nginx.conf  -v /data/mydata/nginx/logs:/var/log/nginx  -v /data/mydata/nginx/conf.d:/etc/nginx/conf.d  -v /data/mydata/nginx/html:/usr/share/nginx/html --privileged=true nginx

6.修改宿主機上nginx的配置文件conf.d目錄下的defaul.conf,如下圖,然后重啟容器,然后可以使用8060端口直接訪問nacos集群了

docker restart nginx

修改:經過測試,此處的nginx的upstream配置成服務器的內網地址也是可以的,相應地,nacos集群配置文件cluster.conf的ip也是服務器的內網ip

 

 

  

   

  

     


免責聲明!

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



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