9.2.2 单机部署与快速验证
本节聚焦在单机环境完成 Nacos 的快速部署与验证,确保控制台与 API 可用,并提供可执行的命令、排错方法与练习,作为后续集群与生产化配置的基础。
1. 前置条件与环境准备#
- JDK:推荐 JDK 8 或 11
- 系统依赖:
wget/curl、tar、bash、lsof - 端口:默认
8848 - 权限:建议创建独立用户运行
示例(CentOS 7):
# 1) 安装基础工具
yum install -y wget curl tar lsof
# 2) 安装 OpenJDK 8
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
# 3) 验证 JDK 与 JAVA_HOME
java -version
echo $JAVA_HOME
# 4) 创建运行用户
useradd -m -s /bin/bash nacos
端口检查与解释:
# -i : 显示监听端口
# -P : 以数字显示端口
# -n : 不做DNS解析
lsof -i:8848 -P -n
# 若有输出,表示端口已被占用,需要更换端口或释放占用
2. 原理草图(单机部署与访问路径)#
3. 下载安装包#
# 切换到安装目录
mkdir -p /opt/nacos && cd /opt/nacos
# 下载并解压(2.2.0 为示例版本)
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 nacos-2.2.0
chown -R nacos:nacos /opt/nacos
目录结构说明:
- bin/:启动/停止脚本
- conf/:配置文件
- data/:本地存储数据
- logs/:日志输出
4. 单机模式启动与验证#
# 切换到 nacos 用户
su - nacos
# 进入安装目录
cd /opt/nacos/nacos-2.2.0
# 以单机模式启动
# -m standalone : 单机模式
sh bin/startup.sh -m standalone
进程与端口验证:
# 查看进程
ps -ef | grep nacos | grep -v grep
# 检查 8848 端口监听
lsof -i:8848 -P -n
日志查看与关键字段解释:
# 启动日志
tail -f logs/start.out
# 关键字段说明:
# "Nacos started successfully" 表示启动成功
# "Nacos started" 出现前若有异常堆栈需先排查
5. Web 控制台访问#
浏览器访问:
http://<服务器IP>:8848/nacos
默认账号密码:
- 用户名:nacos
- 密码:nacos
若无法访问,先用本机验证:
curl -I http://127.0.0.1:8848/nacos
# 预期:HTTP/1.1 200 OK 或 302
6. 基础功能快速验证(含完整命令)#
6.1 配置管理验证#
创建配置(使用 API):
# dataId=test.yaml, group=DEFAULT_GROUP
curl -X POST \
"http://127.0.0.1:8848/nacos/v1/cs/configs" \
-d "dataId=test.yaml" \
-d "group=DEFAULT_GROUP" \
-d "content=app.name: nacos-demo"
读取配置:
curl -X GET \
"http://127.0.0.1:8848/nacos/v1/cs/configs?dataId=test.yaml&group=DEFAULT_GROUP"
# 预期输出:app.name: nacos-demo
6.2 服务注册与发现验证#
注册服务实例:
curl -X POST \
"http://127.0.0.1:8848/nacos/v1/ns/instance" \
-d "serviceName=test-service" \
-d "ip=127.0.0.1" \
-d "port=8080"
查询服务实例:
curl -X GET \
"http://127.0.0.1:8848/nacos/v1/ns/instance/list?serviceName=test-service"
# 预期:返回包含 ip=127.0.0.1, port=8080 的 JSON
7. 常见问题与快速处理(含排错命令)#
- 无法访问 8848
```bash
# 检查防火墙
firewall-cmd --list-ports
firewall-cmd --add-port=8848/tcp --permanent
firewall-cmd --reload
# 检查安全组(云主机需在控制台放行)
- **启动失败:JDK 不匹配**bash
java -version
# 若版本不匹配,切换 JAVA_HOME
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk
export PATH=$JAVA_HOME/bin:$PATH
- **控制台空白/加载失败**bash
# 查看控制台静态资源是否正常返回
curl -I http://127.0.0.1:8848/nacos/
# 清除浏览器缓存或更换浏览器
- **端口被占用**bash
lsof -i:8848 -P -n
# 关闭占用进程
kill -9
```
8. 单机部署适用场景#
- 学习与功能验证
- 开发环境快速调试
- 本地集成与测试
9. 练习与自检#
- 将
test.yaml中的内容修改为app.env: dev,并验证读取结果。 - 注册两个实例(端口分别为 8080、8081),检查列表中是否包含两个实例。
- 停止 Nacos 进程,观察控制台与 API 访问的变化,记录日志中的关键错误信息。