使用redis2-nginx-module连接带密码的redis时报NOAUTH Authentication required. 错误解决方案

使用redis2-nginx-module-0.15连接带密码的redis时,报NOAUTH Authentication required错误。网上无相关解决方案,经分析,将授权语句redis2_query auth ‘pwd’;写在最前测试,重启nginx后成功连接。此外,有时nginx -s reload配置不重新加载,测试建议用nginx -s stop后再启动。

个人博客原文地址:http://www.lampnick.com/php/746

使用redis2-nginx-module连接带密码的redis时报NOAUTH Authentication required. 错误解决方案

版本:redis2-nginx-module-0.15

使用redis2-nginx-module连接redis报错的nginx.conf代码如下:

location /foo {
     default_type 'text/plain';
     redis2_query set hello 'world';
     redis2_query get hello;
     redis2_query auth 'pwd';
     redis2_pass ip:port;
 }

报错信息如下:

nginx-redis-err-auth

网上找了很多资料都没有找到有相关的错误解决方案。后来仔细分析了错误信息,发现redis2_query一共有3个地方写了,错误有2个地方报NOAUTH Authentication required.一个地方报OK,刚好和nginx.conf里面的语句对应,想想redis2_query的原理应该是依次向下执行的,刚开始没有授权肯定会报NOAUTH Authentication required错误,由于将授权语句写到最前面redis2_query auth ‘pwd’;进行测试

location /foo {
     default_type 'text/plain';
     redis2_query auth 'pwd';
     redis2_query set hello 'world';
     redis2_query get hello;
     redis2_pass ip:port;
 }

重启nginx服务器后,发现已经成功连接上redis了。这问题花了半天的时间才解决。回头想想是不应该的。

nginx-redis-ok

特别说明:有台线上服务器的代码这样的,也能连接成功,应该是redis2-nginx-module版本问题。
有时使用nginx -s reload配置不会重新加载 ,建议测试时使用nginx -s stop,然后再启动nginx

location = /redis {
     set $env $arg_env;
     redis2_query hget env $env;
     redis2_query auth 'pwd';
     redis2_pass ip:port;
 }
### Redis 客户端认证问题解决方案 当遇到 `(error) NOAUTH Authentication required` 错误时,表明尝试访问 Redis 实例的操作未通过身份验证。此错误通常发生在 Redis 配置了密码保护的情况下。 #### 方法一:使用 `auth` 命令手动认证 如果已经启动并进入了 Redis CLI 或者其他客户端工具,则可以通过发送 `auth "password"` 来完成认证过程[^1]: ```bash 127.0.0.1:6379> AUTH "your_password_here" OK ``` #### 方法二:直接指定密码参数连接 为了简化流程,在首次建立连接时即提供必要的凭证信息也是一种常见做法。对于命令行界面而言,可以采用如下方式调用 redis-cli 工具[^3]: ```bash ./redis-cli -h your_redis_ip -p your_redis_port -a your_password ``` 这里的 `-a` 参数后面紧跟的就是用于登录的目标实例所配置的密码字符串;而 `-h` 和 `-p` 则分别指定了目标主机地址与服务监听端口号。 #### 修改配置文件以移除或更改现有密码 若希望永久性调整安全策略——比如取消当前设定的身份验证机制或是更新旧版密钥至新版本的话,就需要编辑对应的配置文档(通常是位于安装路径下的 `redis.conf` 文件)。具体操作步骤如下所示[^4]: - 使用文本编辑器打开该文件; - 查找名为 `requirepass` 的选项; - 如果打算禁用认证功能则将其前面加上分号 (`;`) 注释掉即可实现目的; - 若要修改已有密码只需替换原有值为新的期望字符序列,并确保其前后被双引号包裹起来; - 保存所做的全部改动之后重启 Redis 服务器使变更生效。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值