qinl
1
环境信息
- EMQX 版本:5.0.4
- 操作系统及版本:windows下docker启动
- 其他
问题描述
EMQX是docker启动,配置信息是在docker-compose文件中配置的,授权链中第一个配置为EMQX_AUTHORIZATION__SOURCES__1__TYPE=redis,启动时报错。但如果第一个为file,第二个为redis时,就可以。
配置文件及日志
- EMQX_AUTHORIZATION__SOURCES__1__TYPE=redis
- EMQX_AUTHORIZATION__SOURCES__1__SERVER=127.0.0.1:6379
- EMQX_AUTHORIZATION__SOURCES__1__REDIS_TYPE=single
- EMQX_AUTHORIZATION__SOURCES__1__DATABASE=1
- EMQX_AUTHORIZATION__SOURCES__1__CMD="HGETALL clientid:$${clientid}"
- EMQX_AUTHORIZATION__SOURCES__2__TYPE=file
- EMQX_AUTHORIZATION__SOURCES__2__PATH=etc/acl_.conf
Shawn
2
从日志看,你当时的 redis 配置里可能有一个 authorization.sources.1.path,它不认这个配置项,所以出错了。
qinl
3
是的,改成2是可以启动的,但是我想设置授权链为redis+file,可设置成1就启动失败。
t1ger
4
@qinl 您好,请问问题是否已经解决?如果尚未解决,我会继续跟进它。
根据你给出的错误日志,你应该需要将 1 和 2 的配置完整地调换一下:
- EMQX_AUTHORIZATION__SOURCES__1__TYPE=file
- EMQX_AUTHORIZATION__SOURCES__1__PATH=etc/acl_.conf
- EMQX_AUTHORIZATION__SOURCES__2__TYPE=redis
- EMQX_AUTHORIZATION__SOURCES__2__SERVER=127.0.0.1:6379
- EMQX_AUTHORIZATION__SOURCES__2__REDIS_TYPE=single
- EMQX_AUTHORIZATION__SOURCES__2__DATABASE=1
- EMQX_AUTHORIZATION__SOURCES__2__CMD="HGETALL clientid:$${clientid}"
类型为 file 时,不应出现 Database 和 CMD 等配置项,所以解析时会报错。