假设服务器的物理地址是192.168.1.10、192.168.1.11、192.168.1.12。
为了确保其他物理服务器上的 Docker 服务能够访问到 Nacos 集群,你需要确保 Nacos 服务在集群中的每个节点上都正确配置,并且网络配置允许外部访问。以下是详细的配置步骤:
1. 创建 Nacos 配置文件
在每台 Nacos 服务器上创建 Nacos 配置文件 application.properties
。假设你希望将配置文件放在 /etc/nacos/conf
目录下。
sudo mkdir -p /etc/nacos/conf
sudo nano /etc/nacos/conf/application.properties
在 application.properties
文件中添加以下内容:
# 指定模式为集群模式
nacos.mode=cluster# 配置集群节点
nacos.server.ip.list=192.168.1.10:8848,192.168.1.11:8848,192.168.1.12:8848# 配置数据目录
nacos.persistence.type=embedded
nacos.persistence.data.storage.type=local# 配置日志目录
nacos.logging.log.path=/home/nacos/logs# 配置嵌入式数据库
nacos.datasource.platform=mysql
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://192.168.1.10:3306/nacos?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos
db.password=nacos
2. 创建 Docker Compose 文件
在每台 Nacos 服务器上创建 docker-compose.yml
文件。假设你希望将文件放在 /etc/nacos
目录下。
sudo nano /etc/nacos/docker-compose.yml
在 docker-compose.yml
文件中添加以下内容:
version: '3.8'services:nacos:image: nacos/nacos-servercontainer_name: nacosenvironment:- MODE=cluster- PREFER_HOST_MODE=hostname- SPRING_DATASOURCE_PLATFORM=mysql- MYSQL_SERVICE_HOST=192.168.1.10- MYSQL_SERVICE_PORT=3306- MYSQL_SERVICE_USER=nacos- MYSQL_SERVICE_PASSWORD=nacos- MYSQL_SERVICE_DB_NAME=nacosvolumes:- /etc/nacos/conf:/home/nacos/init.d- /home/nacos/data:/home/nacos/data- /home/nacos/logs:/home/nacos/logsports:- 8848:8848network_mode: "host"
3. 启动 Nacos 集群
在每台 Nacos 服务器上启动 Nacos 容器:
sudo docker-compose -f /etc/nacos/docker-compose.yml up -d
4. 配置防火墙
确保 Nacos 服务的端口(默认是 8848)在每台 Nacos 服务器上允许外部访问。你可以使用 ufw
来配置防火墙规则:
sudo ufw allow 8848
5. 验证 Nacos 集群
打开浏览器,访问以下 URL 来验证 Nacos 集群是否正常运行:
http://192.168.1.10:8848/nacos
http://192.168.1.11:8848/nacos
http://192.168.1.12:8848/nacos
默认的用户名和密码都是 nacos
。