Dovecot无法初始化dict:dict redis:无效IP
我使用的是Dovecot无法初始化dict:dict redis:无效IP,redis,dovecot,Redis,Dovecot,我使用的是Dovecot v2.3.9.3。通过查看dovecot,我发现Redis的规范如下: redis:param=value:param2=value2:... } else if (str_begins(*args, "host=")) { if (net_addr2ip(*args+5, &ip) < 0) { *error_r = t_strdup_printf("Invalid IP: %s", *args+5);
Dovecot v2.3.9.3
。通过查看dovecot,我发现Redis
的规范如下:
redis:param=value:param2=value2:...
} else if (str_begins(*args, "host=")) {
if (net_addr2ip(*args+5, &ip) < 0) {
*error_r = t_strdup_printf("Invalid IP: %s",
*args+5);
ret = -1;
}
}
这里的一个参数是主机:Redis服务器主机(默认值:127.0.0.1)
在我的配置中,我指定了uri=redis:host=redis:port=6379
:
二月23日20:48:32身份验证:致命:dict/etc/dovecot/dovecot-dict-auth.conf.ext:无法初始化dict:dict-redis:无效IP:redis
redis
我的服务器上的主机名解析为IP,没有任何问题:
# getent hosts redis
192.168.48.2 redis redis
有没有办法使用主机名
(可能是启用解析的隐藏设置),或者他们只是直截了当地没有实现对此的支持/ TL;博士
Dovecotredis dict
驱动程序接受未记录的参数,您可以在其中指定unix套接字。然后,您可以通过unix套接字/run/redis.soc
,为tcp端口6379
上的主机名redis
创建一个代理:
socat unix-listen:/run/redis.soc,reuseaddr,fork,perm=0644,user=dovecot tcp:redis:6379 &
Dovecot配置变为:
# Dictionary URI
uri = redis:path=/run/redis.soc
下面是我对这个问题的分析。我不使用
C
编码,所以我的理解是有限的
下面是我的错误(无效IP:redis
)的说明:
redis:param=value:param2=value2:...
} else if (str_begins(*args, "host=")) {
if (net_addr2ip(*args+5, &ip) < 0) {
*error_r = t_strdup_printf("Invalid IP: %s",
*args+5);
ret = -1;
}
}
因此,dovecot的redis dict
驱动程序中的host
参数只能是IP地址_(ツ)_/“”