乐于分享
好东西不私藏

Nacos 集群部署 (源码包二进制2.2.0版本)

本文最后更新于2026-01-18,某些文章具有时效性,若有错误或已失效,请在下方留言或联系老夜

Nacos 集群部署 (源码包二进制2.2.0版本)

一、环境准备

1. 系统要求

  • 3台或以上 Linux 服务器(CentOS 7+/Ubuntu 18.04+)

  • JDK 1.8+

  • MySQL 5.7+(推荐 8.0)

  • Nginx

2. 下载源码包

# 在三台服务器上都执行
cd /opt
wget https://github.com/alibaba/nacos/releases/download/2.2.0/nacos-server-2.2.0.tar.gz
tar -zxvf nacos-server-2.2.0.tar.gz
mv nacos /usr/local/

二、数据库配置

1. 创建数据库(在其中一台服务器执行)

-- 登录 MySQL
mysql -u root -p

-- 创建数据库
CREATE DATABASE nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 使用数据库
USE nacos_config;

-- 执行 Nacos 提供的 SQL 脚本
-- 从下载的源码包中获取
-- /usr/local/nacos/conf/mysql-schema.sql
source /usr/local/nacos/conf/mysql-schema.sql;

-- 创建用户并授权(推荐)
CREATE USER 'nacos'@'%' IDENTIFIED BY 'Nacos@123456';
GRANT ALL PRIVILEGES ON nacos_config.* TO 'nacos'@'%';
FLUSH PRIVILEGES;

三、Nacos 集群配置

1. 配置 application.properties(所有节点)

vim /usr/local/nacos/conf/application.properties

# 数据源配置(所有节点相同)
spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://数据库IP:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user.0=nacos
db.password.0=Nacos@123456

# 集群配置
server.port=8848
nacos.inetutils.ip-address=当前节点IP  # 重要:每台服务器改为自己的IP

2. 配置集群节点(所有节点)

vi /usr/local/nacos/conf/cluster.conf

# 所有节点的 IP:PORT(三台服务器内容相同)
192.168.1.101:8848
192.168.1.102:8848
192.168.1.103:8848

3. 配置启动脚本(可选,调整内存)

vim /usr/local/nacos/bin/startup.sh

# 找到 JVM 配置,根据服务器内存调整
JAVA_OPT="${JAVA_OPT} -server -Xms2g -Xmx2g -Xmn1g"

四、启动 Nacos 集群

1. 以集群模式启动

# 三台服务器都执行
cd /usr/local/nacos/bin
sh startup.sh -m cluster

# 检查启动状态
tail -f /usr/local/nacos/logs/start.out

# 查看日志
tail -f /usr/local/nacos/logs/nacos.log

2. 验证集群状态

# 查看进程
ps-ef | grep nacos

# 检查端口
netstat -ntlp | grep8848

# 访问每个节点查看状态
curl http://192.168.1.101:8848/nacos/v1/ns/raft/state
curl http://192.168.1.102:8848/nacos/v1/ns/raft/state
curl http://192.168.1.103:8848/nacos/v1/ns/raft/state

五、Nginx 代理配置

1. 安装 Nginx(在单独服务器或其中一个节点)

# CentOS
(或者自行找本公众号源码包安装nginx)
yum install -y nginx

# Ubuntu
apt-get install -y nginx

2. 配置 Nginx

vi /etc/nginx/nginx.conf

http {
    upstream nacos-cluster {
# 配置所有 Nacos 节点
        server 192.168.1.101:8848;
        server 192.168.1.102:8848;
        server 192.168.1.103:8848;
    }

    server {
        listen 80;
        server_name nacos.example.com;  # 改为你的域名或IP

# Nacos 代理
        location /nacos {
            proxy_pass http://nacos-cluster/nacos;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;

# 超时设置
            proxy_connect_timeout 30s;
            proxy_send_timeout 30s;
            proxy_read_timeout 30s;

# 支持 WebSocket(Nacos 2.0+)
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }

# 健康检查
        location /nacos/health {
            proxy_pass http://nacos-cluster/nacos/health;
        }
    }
}

4. 启动并配置 Nginx

# 检查配置文件
nginx -t

# 启动/重启 Nginx
systemctl start nginx
systemctl restart nginx
systemctl enable nginx

# 防火墙开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload

六、验证部署

1. 访问 Nacos 控制台

http://Nginx服务器IP/nacos
默认账号:nacos
默认密码:nacos

2. 检查集群状态

# 通过 API 检查
curl http://Nginx服务器IP/nacos/v1/core/cluster/nodes

# 查看集群 leader
curl http://Nginx服务器IP/nacos/v1/ns/raft/leader

3. 服务注册测试

# 使用 API 注册服务
curl-X POST 'http://Nginx服务器IP/nacos/v1/ns/instance' \
-d'serviceName=test-service&ip=192.168.1.100&port=8080'

# 查询服务
curl-X GET 'http://Nginx服务器IP/nacos/v1/ns/instance/list?serviceName=test-service'

七、优化配置

1. Nacos 优化配置

# /usr/local/nacos/conf/application.properties

# JVM 调优
nacos.naming.empty-service.auto-clean=true
nacos.naming.empty-service.clean.initial-delay-ms=50000
nacos.naming.empty-service.clean.period-time-ms=30000

# 数据存储优化
nacos.naming.distro.taskDispatchPeriod=200
nacos.naming.distro.batchSyncKeyCount=1000
nacos.naming.distro.syncRetryDelay=5000

# 日志配置
nacos.logging.default.config.enabled=false

2. 创建 systemd 服务(可选)

vi /etc/systemd/system/nacos.service

[Unit]
Description=Nacos Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nacos/bin/startup.sh -m cluster
ExecStop=/usr/local/nacos/bin/shutdown.sh
Restart=on-failure
User=nobody
Group=nobody

[Install]
WantedBy=multi-user.target

3. 启动服务

systemctl daemon-reload
systemctl start nacos
systemctl enable nacos
本站文章均为手工撰写未经允许谢绝转载:夜雨聆风 » Nacos 集群部署 (源码包二进制2.2.0版本)

评论 抢沙发

3 + 9 =
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
×
订阅图标按钮