一、下载
1.1 GitHub下载
https://github.com/alibaba/nacos/releases
github上可以直接下载可运行程序,也可以下载源码自己编译。对于网速不好的情况比较头疼。
1.2 gitee下载
https://gitee.com/mirrors/Nacos/tags
gitee只能下载源码自己编译,需要JDK8
1.3 nacos部分版本注意点
nacos本身都是jdk1.8编译的,但是与nacos-client配套的com.alibaba.cloud版本可不是。其中nacos-client-2.2.0是最高支持jdk11,nacos-client-2.2.1开始最低支持jdk19,com.alibaba.cloud对应的nacos-client版本可通过maven库中对应版本的pom中查看。
spring-cloud-alibaba-dependencies
之所以特殊提到nacos-client-2.2.0和nacos-client-2.2.1,是因为2.2.1配套的com.alibaba.cloud默认开启了https的trustAll,可完美适配自签证书的情况。但是很多springboot项目还是jdk8或者jdk11,此时如果要开启https,通常都很难成功,基本都是证书问题。想要实现证书trusALL就得对源码动手了,详细参考springboot关于nacos解密和https支持
二、编译(直接下载可执行程序的忽略此操作)
2.1 原始nacos编译
需要jdk8和maven
git clone https://github.com/alibaba/nacos.git
git checkout tag名称
mvn clean install -DskipTests -Drat.skip=true -P release-nacos
成功后console/target/nacos-server.jar就是启动jar
2.2 添加加密插件
先编译nacos,再编译加密插件,因为插件需要依赖nacos的包;下载的插件需要修改依赖的的nacos版本
git clone https://github.com/nacos-group/nacos-plugin.git
git checkout tag名称
mvn clean install -DskipTests -Drat.skip=true
修改nacos/config的pom,添加加密插件,然后再次构建nacos
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-aes-encryption-plugin</artifactId>
<version>${revision}</version>
</dependency>
编译完的文件可以打包成和官网下载的压缩包一样的目录结构
mkdir nacos
cp console/target/nacos-server.jar nacos/target/nacos-server.jar
cp distribution/conf/* nacos/conf/
tar -zcvf nacos-server-版本.tar.gz nacos
2.3 开启https
在application.properties中添加以下内容
server.ssl.enabled=true
server.ssl.key-alias=nacos
server.ssl.key-store=证书路径/nacos.p12
server.ssl.key-store-type=JKS
server.ssl.key-store-password=证书密码
注意:自签证书的域名(hostname)与提供给nacos-client的nacos地址一定要一致,否则会校验不通过。当然客户端也可以处理成信任所有证书,参考springboot关于nacos解密和https支持
三、初始化
执行conf下对应数据库的脚本,例如mysql-schema.sql
修改conf下的application.properties配置文件中的数据库地址
打开认证 nacos.core.auth.enabled=true
四、启动
4.1 服务器单机启动
命令行执行:startup.cmd -m standalone
4.2 docker镜像制作和启动
通常可直接下载nacos镜像启动即可。
但是官网镜像是没有加密插件的,所以如果要添加加密插件就得自己构建镜像。构建之前先按照前文准备好nacos的压缩包,然后获取Dockerfile
wget https://github.com/alibaba/nacos/releases/download/{NACOS_VERSION}/nacos-server-{NACOS_VERSION}.tar.gz
修改下载文件中的application.properties,添加https支持
# https
server.ssl.enabled=${SSL_ENABLED:false}
server.ssl.key-alias=${SSL_KEY_ALIAS:nacos}
server.ssl.key-store=${SSL_KEY_STORE:/home/nacos/nacos.p12}
server.ssl.key-store-type=${SSL_KEY_STORE_TYPE:JKS}
server.ssl.key-store-password=${SSL_KEY_STORE_PASSWORD:}
构建镜像
docker build -t nacos:{NACOS_VERSION} .
单机模式非root用户启动
#!/bin/bash
#项目名称
serviceName=nacos
# 绑定的目录
bindDir=/data/docker-space/$serviceName/bind
# nacos默认以镜像中的nacos用户启动
# 修改挂载目录的权限
chown -R 1000:1000 /data/docker-space/$serviceName/bind/
docker run \
-v /data/docker-space/$serviceName/bind/data:/home/nacos/data \
-v /data/docker-space/$serviceName/bind/logs:/home/nacos/logs \
-v /data/docker-space/$serviceName/bind/nacos.p12:/home/nacos/nacos.p12 \
--name $serviceName \
--restart=always \
--hostname=nacos-standalone \
-p 8848:8848 \
-p 9848:9848 \
-e NACOS_AUTH_ENABLE=true \
-e SSL_ENABLED=true \
-e SSL_KEY_STORE_PASSWORD=证书密码 \
-e MODE=standalone \
-e PREFER_HOST_MODE=hostname \
--log-driver json-file \
--log-opt max-size=50m \
--log-opt max-file=2 \
-d nacos:{NACOS_VERSION}
五、访问
http://localhost:8848/nacos/#/login 默认用户密码:nacos/nacos