使用Docker部署Nacos 2.3.2开启鉴权后无法访问控制台

本文描述了作者在将Nacos从2.0.3升级到2.3.2过程中遇到的权限验证和浏览器访问403问题,通过调整环境变量中的特殊符号解决了问题,并提供了docker运行脚本示例。
摘要由CSDN通过智能技术生成

Docker 部署 Nacos 2.3.2 开启鉴权无法访问控制台

背景

由于业务需要,本人需要升级项目中使用到的微服务技术栈的版本,在将 nacos 从 2.0.3 升级到 2.3.2 时遇到一些问题,特此记录一下。

问题一、权限校验问题

使用 docker 安装 nacos 2.2.2以后的版本需要自定义下面三个环境变量

# 一般用于自定义功能时鉴权,可以在请求头带上该key用以鉴权,详情看官方文档
NACOS_AUTH_IDENTITY_KEY=xxxxx
# 一般用于自定义功能时鉴权,可以在请求头带上该value用以鉴权,详情看官方文档
NACOS_AUTH_IDENTITY_VALUE=xxxxx
# jwt生成时使用的密钥,最少32Bytes,使用base64加密
NACOS_AUTH_TOKEN=xxxxx

详情可以参考:
Nacos 官方文档
Nacos Docker 官方文档

问题二、docker 部署后无法访问控制台的问题

按照上述步骤成功部署,并且能连接上nacos后,发现浏览器访问时始终会报403:

type=Forbidden, status=403

Invalid server identity key or value, Please make sure set `nacos.core.auth.server.identity.key` and `nacos.core.auth.server.identity.value`, or open `nacos.core.auth.enable.userAgentAuthWhite`

后来经过排查,发现是下面这个环境变量出现问题

-e NACOS_AUTH_IDENTITY_VALUE=pg.R#b2c4.ANvh!IA14Z

直接把其中的特殊符号去掉,然后再重启就行了

以下提供一个我自己能用的 docker 脚本,当然我后来用不同的密码重新部署了一次,所以这些信息就没用了,建议你们复制脚本后也改一下其中的敏感信息:

docker run -d \
-e MODE=standalone \
-e JVM_XMS=128m \
-e JVM_XMX=128m \
-e JVM_XMN=128m \
-e SPRING_DATASOURCE_PLATFORM=mysql \
-e MYSQL_SERVICE_HOST=xxxxxx \
-e MYSQL_SERVICE_PORT=xxxx \
-e MYSQL_SERVICE_USER=xxxxxx\
-e MYSQL_SERVICE_PASSWORD=xxxxxxxx \
-e MYSQL_SERVICE_DB_NAME=xxxxxxx \
-e MYSQL_SERVICE_DB_PARAM='characterEncoding=utf8&connectTimeout=10000&socketTimeout=30000&autoReconnect=true&useSSL=false' \
-e NACOS_AUTH_ENABLE=true \
-e NACOS_AUTH_IDENTITY_KEY=xxxxxxxx \
-e NACOS_AUTH_IDENTITY_VALUE=pgRb2c4ANvhIA14Z \
-e NACOS_AUTH_TOKEN=NStQdHM3WCU3RVYlMjRZdG04aUolMkM3JTJDQnhyUCU1RXFMJTIxaiUyOCUyM1JZ \
-p 8848:8848 \
-p 9848:9848 \
--restart=always \
--privileged=true \
--name nacos nacos/nacos-server:v2.3.2
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是在Linux上使用docker部署nacos的步骤: 1. 安装docker 如果您的Linux机器上还没有安装docker,您需要先安装docker。可以执行以下命令来安装: ``` curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun ``` 2. 下载nacosdocker镜像文件 运行以下命令: ``` docker pull nacos/nacos-server ``` 3. 启动nacos容器 运行以下命令: ``` docker run --name nacos -e MODE=standalone -p 8848:8848 -d nacos/nacos-server ``` 其中,`--name`指定容器名称,`-e MODE=standalone`指定nacos为单机模式,`-p 8848:8848`指定映射到主机的端口号为8848。 4. 访问nacos 在浏览器中输入以下网址进行访问:http://<Linux机器IP>:8848/nacos/ 现在,您已经成功部署nacos! 如果您无法访问nacos界面,请检查以下几点: 1. 确认nacos容器是否已经启动 您可以运行以下命令查看容器状态: ``` docker ps -a ``` 如果nacos容器的状态为`Exited`,则说明容器启动失败。您可以运行以下命令查看容器日志,以便更好地排查问题: ``` docker logs nacos ``` 2. 确认端口是否正确映射 您可以运行以下命令查看容器端口映射情况: ``` docker port nacos ``` 如果您发现端口没有正确映射到主机上,您可以停止并删除容器,然后重新启动容器并指定正确的端口映射参数。 3. 确认防火墙是否允许访问端口 如果您的Linux机器上启用了防火墙,可能会阻止对nacos端口的访问。您可以尝试关闭防火墙或者配置防火墙规则以允许对端口的访问。 希望这些建议能够帮助您解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值