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