Appearance
注意一下和 springcloud 的版本对应
版本选择可以看一下这些文档
- https://sca.aliyun.com/docs/2023/overview/version-explain/?spm=5176.29160081.0.0.74805c72v1ZZT5
- https://nacos.io/docs/next/quickstart/quick-start/
单机环境
生产环境建议使用集群模式部署,单机模式仅适合开发和测试
Docker 的方式安装 Nacos
- Nacos:2.x(推荐)
- 模式:Standalone(单机模式)
拉取镜像
#拉取镜像,指定版本
docker pull nacos/nacos-server:v2.3.0
#数据持久化
mkdir -p /opt/nacos/{conf,data,logs}
#(可选)准备自定义配置文件【这里跳过】后面还是使用了自定义配置文件,启动参数中指定了,要不然你改一下启动参数
#查看镜像
docker images | grep nacos-server启动 Nacos (单机模式)
docker run -d \
--name nacos \
--restart=always \
-p 8848:8848 \
-p 9848:9848 \
-p 9849:9849 \
-e MODE=standalone \
-v /opt/nacos/conf:/home/nacos/conf \
-v /opt/nacos/data:/home/nacos/data \
-v /opt/nacos/logs:/home/nacos/logs \
nacos/nacos-server:v2.3.0📌 Nacos 2.x 必须开放 9848 / 9849,否则服务注册异常。
端口说明(非常重要)
| 端口 | 作用 |
|---|---|
| 8848 | Web 控制台 / HTTP API |
| 9848 | gRPC(客户端通信) |
| 9849 | gRPC(集群通信) |
访问 Nacos 控制台
http://服务器IP:8848/nacos指定配置文件
上面参数中指定了配置文件,这里实际启动报错了
Logging system failed to initialize using configuration from '/home/nacos/conf/nacos-logback.xml'
java.io.FileNotFoundException:
/home/nacos/conf/nacos-logback.xml (No such file or directory)宿主机目录 /opt/nacos/conf 中 并不存在. nacos-logback.xml 文件
从官方镜像中拷贝默认日志配置
#拷贝配置
docker run --rm nacos/nacos-server:v2.3.0 \
cat /home/nacos/conf/nacos-logback.xml \
> /opt/nacos/conf/nacos-logback.xml
#确认文件存在
ls -l /opt/nacos/conf/nacos-logback.xml
#重启容器
docker restart nacos重写覆盖一下文件(可选)
在执行这里的时候,实际遇到了拷贝写入文件的时候出现不在预期中的字符,因此这里进行了重写操作
cat > /opt/nacos/conf/nacos-logback.xml << 'EOF'
<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds">
<property name="LOG_HOME" value="/home/nacos/logs"/>
<property name="APP_NAME" value="nacos"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/${APP_NAME}.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/${APP_NAME}.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %-5level [%thread] %logger{50} - %msg%n</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE"/>
</root>
</configuration>
EOF#重启容器
docker restart nacos鉴权操作
⬆️ 上面这种方式使用的话,由于没有 application.properties 配置文件,默认鉴权是关闭的,因此访问是不需要账户密码的。
如果要开启鉴权的话,需要进行下面的操作
默认账号密码: nacos/nacos
#拷贝官方文件
docker create --name tmp-nacos nacos/nacos-server:v2.3.0
docker cp tmp-nacos:/home/nacos/conf/application.properties /opt/nacos/conf/
docker rm tmp-nacos编辑配置文件
vim /opt/nacos/conf/application.properties新增或者确认以下内容
# 开启鉴权
nacos.core.auth.enabled=true
# 使用内置鉴权插件
nacos.core.auth.system.type=nacos
# 启用登录
nacos.core.auth.server.identity.key=nacos
nacos.core.auth.server.identity.value=nacos
# JWT secret(必须) nacos.core.auth.plugin.nacos.token.secret.key=yJ7qf9Y2Q3HcR9bQyT0zFQv8y1Zc+P7nX8v7d8kKk3M=⬆️ JWT secret(必须)
“开启 Auth ” 后,需要 配置符合要求的 JWT secret
生成一个合规的 JWT secret(强烈推荐)
在宿主机执行:
openssl rand -base64 32
#输出结果,解码后 32 字节⬇️
ntdctb9H0xxdv7OXWFnOkzK70Bfbj1myVN69NNm3oGI=重启容器
#重启容器
docker restart nacos配置 外部数据库(MySQL 方式)
略,后续跟进一下
本地环境服务安装
也记录一下不使用 docker 的方式,安装 nacos 的操作;
系统是: centos7
前提需要:项目运行环境需要安装 nacos
在 centos 中进行安装nacos,这里演示安装版本是 1.3.2,
下载地址: https://github.com/alibaba/nacos/releases/tag/1.3.2
nacos 运行需要先安装一下 JDK 环境,注意一下
可以自己点击下载 nacos-server-1.3.2.tar.gz
或者在 Linux系统中下载命令:
wget https://github.com/alibaba/nacos/releases/download/1.3.2/nacos-server-1.3.2.tar.gz下载完压缩包之后,上传指服务器任意目录,进行解压
tar -zxvf nacos-server-1.3.2.tar.gz解压后会生成 nacos 文件夹,进入到 nacos 目录,输入命令启动(以单机的形式启动)
bin/startup.sh -m standalone如果需要持久化 配置到mysql,则调整nacos的配置
如果你的服务器开了防火墙,则需要开放相应的端口
#开放端口
firewall-cmd --zone=public --add-port=8848/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看开放的端口列表
firewall-cmd --list-portnacos默认的启动端口是 8848,访问 http://ip:端口/nacos 即可看到登录页面.默认的用户名密码是 nacos/naocs,登录即可使用