说明
- 本文记录的是使用docker在测试环境部署nacos集群的操作记录,供参考
依赖环境
- docker
- mysql数据库
- git
获取nacos-server镜像
- docker pull nacos/nacos-server:1.2.0
获取nacos-docker编排文件
- 进入到 /data/docker-relate 这个目录下,没有的话则创建
- 执行 git clone https://github.com/nacos-group/nacos-docker.git
新建file目录
- 由于nacos三节点修改配置后不同步问题,现在修改了nacos的控制台界面,所以程序启动时需要加载修改后的jar包,把 nacos-server.jar 放在这个目录(/data/docker-relate/nacos-docker/file)里,file目录需要自己创建
执行sql
- 此处需要执行nacos数据库文件,在数据库执行 nacos-mysql.sql 文件
修改配置文件
- 到 /data/docker-relate/nacos-docker目录 cd env/
-
修改 nacos-ip.env 文件为下边的内容
1
2
3
4
5
6
ACOS_SERVERS=xx.xx.xx:8848 xx.xx.xx:8848 xx.xx.xx:8848 ###nacos服务器集群ip地址
MYSQL_SERVICE_HOST=xx.xx.xx ### mysqlHost
MYSQL_SERVICE_DB_NAME=xxxx ###mysql数据库名称
MYSQL_SERVICE_PORT=3306 ### mysql数据库端口
MYSQL_SERVICE_USER=xxxx ### mysql数据库用户名
MYSQL_SERVICE_PASSWORD=xxxx ### mysql数据库密码
-
到 /data/docker-relate/nacos-docker/example目录,修改 cluster-ip.yaml 中的配置
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
version: "2"
services:
nacos:
image: nacos/nacos-server:1.2.0
container_name: nacos
volumes:
- ./cluster-logs/nacos1:/home/nacos/logs # 第一台就算是nacos1,第二台就是nacos2...
- /data/docker-relate/nacos-docker/file:/home/nacos/target #此处不需要改
ports:
- "8848:8848"
- "9555:9555"
networks:
- nacos_net
environment:
MODE: cluster # 集群模式
PREFER_HOST_MODE: ip #如果支持主机名可以使用hostname,否则使用ip,默认也是ip
SPRING_DATASOURCE_PLATFORM: mysql #数据源平台 仅支持mysql或不保存empty
NACOS_SERVER_IP: xx.xx.xx #多网卡情况下,指定ip或网卡 本台机器的ip
TOMCAT_ACCESSLOG_ENABLED: 'false'
NACOS_AUTH_ENABLE: 'true'
env_file:
- ../env/nacos-ip.env
restart: on-failure
networks:
nacos_net:
driver: bridge
重复以上操作完成nacos集群配置
配置nginx访问控制台界面,配置供参考
-
为每台nacos服务配置nginx,用于应用内部集群配置,三台nacos需要配置三个文件
upstream server_nacos_01 {
server xx.xx.xx:8848 weight=5;
}
server {
listen 80;
server_name xxx.xxx.xxx.com;
access_log /data/wwwlogs/test-nacos-01.access.log combined;
location / {
proxy_pass http://server_nacos_01;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
}
}
-
配置统一的域名,用于web访问,由于nacos三节点配置同步问题,upstream里配置一台就可以
upstream server_nacos {
server xx.xx.xx:8848 weight=5;
}
server {
listen 80;
server_name xxx.xxx.xxx.com;
access_log /data/wwwlogs/test-nacos-web.access.log combined;
location / {
proxy_pass http://server_nacos;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
}
}
命令
- 在/data/docker-relate/nacos-docker目录下使用docker启动nacos集群
docker-compose -f example
/cluster-ip
.yaml up -d
-
停止运行
docker
ps
docker stop $CONTAINER_ID
官方文档