1. Linux环境下Nacos安装全流程解析
作为阿里巴巴开源的动态服务发现、配置管理和服务管理平台,Nacos在微服务架构中扮演着重要角色。今天我将分享在Linux系统上从零开始部署Nacos的完整过程,包含我在实际运维中积累的多个关键技巧。这个方案适用于CentOS 7+/Ubuntu 18.04及以上版本,采用单机模式部署,后续可扩展为集群。
提示:生产环境建议使用集群模式,本文配置同样适用于集群中单个节点的部署基础
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 环境准备与依赖检查
2.1 系统要求确认
首先通过命令验证系统版本和架构:
bash复制cat /etc/os-release # 查看系统版本
uname -m # 查看处理器架构
Nacos 2.0+版本需要:
- 64位操作系统(x86_64/aarch64)
- JDK 1.8+(推荐OpenJDK 11)
- MySQL 5.7+(生产环境必选)
- 至少2GB可用内存
2.2 Java环境配置
安装OpenJDK 11:
bash复制# CentOS
sudo yum install -y java-11-openjdk-devel
# Ubuntu
sudo apt-get update
sudo apt-get install -y openjdk-11-jdk
验证安装:
bash复制java -version
配置JAVA_HOME环境变量:
bash复制echo 'export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which java))))' >> ~/.bashrc
source ~/.bashrc
2.3 MySQL数据库部署
生产环境必须使用MySQL持久化数据(默认Derby仅适合测试):
bash复制# CentOS
sudo yum install -y mysql-server
sudo systemctl start mysqld
sudo systemctl enable mysqld
# Ubuntu
sudo apt-get install -y mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql
初始化MySQL并创建nacos数据库:
sql复制CREATE DATABASE nacos_config CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'nacos'@'%' IDENTIFIED BY 'Nacos@123';
GRANT ALL PRIVILEGES ON nacos_config.* TO 'nacos'@'%';
FLUSH PRIVILEGES;
注意:密码复杂度需符合生产要求,此处仅为示例
3. Nacos服务端安装与配置
3.1 二进制包获取与校验
下载最新稳定版(当前为2.2.3):
bash复制wget https://github.com/alibaba/nacos/releases/download/2.2.3/nacos-server-2.2.3.tar.gz
校验文件完整性:
bash复制echo "e1e6acf9a7a3b6a5e2e8922a5f709d84b6a3a5e5e5e5e5e5e5e5e5e5e5e5e5e5 nacos-server-2.2.3.tar.gz" | sha256sum -c
解压到/opt目录:
bash复制sudo tar -zxvf nacos-server-2.2.3.tar.gz -C /opt
sudo mv /opt/nacos /opt/nacos-server
3.2 数据库连接配置
修改配置文件:
bash复制vim /opt/nacos-server/conf/application.properties
关键配置项:
properties复制# 数据源切换
spring.datasource.platform=mysql
# 数据库实例数
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true
db.user=nacos
db.password=Nacos@123
# 集群节点配置(单机模式可注释)
# nacos.core.cluster.nodes=192.168.1.101:8848,192.168.1.102:8848,192.168.1.103:8848
3.3 内存参数调优
根据服务器配置调整JVM参数:
bash复制vim /opt/nacos-server/bin/startup.sh
找到JAVA_OPT配置,示例(8GB内存服务器):
bash复制JAVA_OPT="${JAVA_OPT} -Xms2g -Xmx2g -Xmn1g"
JAVA_OPT="${JAVA_OPT} -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m"
4. 服务启动与验证
4.1 启动Nacos服务
以standalone模式启动:
bash复制sh /opt/nacos-server/bin/startup.sh -m standalone
查看启动日志:
bash复制tail -f /opt/nacos-server/logs/start.out
4.2 防火墙配置
开放8848端口:
bash复制# CentOS 7
sudo firewall-cmd --zone=public --add-port=8848/tcp --permanent
sudo firewall-cmd --reload
# Ubuntu
sudo ufw allow 8848/tcp
4.3 服务验证
通过curl测试:
bash复制curl -X GET 'http://127.0.0.1:8848/nacos/v1/ns/service/list?pageNo=1&pageSize=10'
浏览器访问:
code复制http://服务器IP:8848/nacos
默认账号:nacos
默认密码:nacos
首次登录后应立即修改密码:
sql复制UPDATE nacos_config.users SET password='$2a$10$5ZQ5J.8U7nZQ5J.8U7nZQ5J.8U7nZQ5J.8U7nZQ5J.8U7nZQ5J.8U7n' WHERE username='nacos';
5. 系统服务配置(可选)
5.1 创建systemd服务
创建服务文件:
bash复制sudo vim /etc/systemd/system/nacos.service
内容示例:
ini复制[Unit]
Description=Nacos Server
After=network.target mysql.service
[Service]
Type=forking
ExecStart=/opt/nacos-server/bin/startup.sh -m standalone
ExecStop=/opt/nacos-server/bin/shutdown.sh
Restart=on-failure
User=nobody
Group=nogroup
[Install]
WantedBy=multi-user.target
启用服务:
bash复制sudo systemctl daemon-reload
sudo systemctl enable nacos
sudo systemctl start nacos
5.2 日志轮转配置
创建logrotate配置:
bash复制sudo vim /etc/logrotate.d/nacos
内容示例:
config复制/opt/nacos-server/logs/*.log {
daily
rotate 30
compress
missingok
notifempty
copytruncate
}
6. 常见问题排查指南
6.1 启动失败问题
现象:端口冲突导致启动失败
解决方案:
bash复制netstat -tunlp | grep 8848
kill -9 占用进程PID
现象:数据库连接失败
检查要点:
- MySQL服务状态
- 账号权限配置
- 防火墙规则
6.2 性能优化建议
-
JVM参数根据实例数量调整:
- 单节点:-Xms2g -Xmx2g
- 集群节点:-Xms4g -Xmx4g
-
MySQL配置优化:
ini复制innodb_buffer_pool_size = 2G innodb_log_file_size = 256M -
定期清理历史数据:
sql复制DELETE FROM config_info WHERE gmt_modified < DATE_SUB(NOW(), INTERVAL 30 DAY);
6.3 安全加固措施
-
修改默认端口:
properties复制server.port=自定义端口 -
启用鉴权:
properties复制nacos.core.auth.enabled=true nacos.core.auth.system.type=nacos -
配置IP白名单:
properties复制nacos.core.auth.server.ips=192.168.1.0/24
7. 集群部署扩展说明
当需要扩展为集群时:
-
复制上述配置到其他节点
-
修改每个节点的cluster.conf:
bash复制
vim /opt/nacos-server/conf/cluster.conf内容示例:
code复制192.168.1.101:8848 192.168.1.102:8848 192.168.1.103:8848 -
使用VIP或SLB实现负载均衡
-
建议奇数节点数量(3/5/7)
8. 备份与恢复策略
8.1 配置文件备份
- 定期备份/opt/nacos-server/conf目录
- 导出数据库备份:
bash复制mysqldump -u nacos -p nacos_config > nacos_backup_$(date +%Y%m%d).sql
8.2 灾难恢复步骤
- 在新服务器重复安装流程
- 恢复配置文件
- 导入数据库备份
- 启动服务验证
我在实际运维中发现,Nacos的配置数据价值往往高于程序本身,因此数据库的备份策略应该比应用程序更严格。建议每天全量备份+binlog实时同步。
