密码保护REDIS与依赖注入nodejs

时间:2017-10-12 14:17:32

标签: javascript node.js dependency-injection redis

嘿,伙计们发生了什么,我的Redis设置上的依赖注入有问题。我们有一个用于开发的室外中央Redis服务器,因此在我的主文件( app.js )中,我正在尝试将其连接到服务器。现在,这是受密码保护的,无法找到isue。

我正在使用此模块redis

app.js

let redis = require('redis');
let redisSettings = {
    host: settings.redis.ip,
    port: settings.redis.port,
    parser: settings.redis.parser,
    password: settings.redis.password
};

let redisClient = redis.createClient(redisSettings);
    redisClient.auth(settings.redis.password, function(){
});

let routes = require('./routes')( redisClient);

settings.js

module.exports = {
    redis: {
        ip: 'domainname.example',
        port: '6379',
        parser: 'javascript',
        password: 'our_very_secure_password'
    }
}

错误页面

  

events.js:182 throw er; //未处理的'错误'事件^

     

ReplyError:DENIED Redis正在受保护模式下运行,因为   保护模式已启用,未指定绑定地址,否   请求客户端使用身份验证密码。在这种模式下   只能从环回接口接受连接。如果你   想要从外部计算机连接到Redis,你可以采用其中一个   以下解决方案:1)只需禁用保护模式发送即可   命令'CONFIG SET protected- mode no'来自loopback接口   通过从服务器运行的同一主机连接到Redis,   但是,确保Redis不能从互联网上公开访问   你这样做了使用CONFIG REWRITE使此更改成为永久更改。 2)   或者,您可以通过编辑来禁用保护模式   Redis配置文件,并将protected mode选项设置为   '不',然后重新启动服务器。 3)如果你启动了服务器   手动只是为了测试,用'--protected-mode no'重新启动它   选项。 4)设置绑定地址或验证密码。注意:   您只需要为服务器执行上述操作之一   开始接受来自外部的联系。在parseError   (/Users/joey.dossche/Documents/DEV/koha_goan/node_modules/redis-   解析器/ lib / parser.js:193:12)at parseType   (/Users/joey.dossche/Documents/DEV/koha_goan/node_modules/redis-   解析器/ LIB / parser.js:303:14)

     

[nodemon] app崩溃 - 在开始之前等待文件更改...

1 个答案:

答案 0 :(得分:1)

我在这个时候自己找到了问题的答案。它非常简单,没有答案......它不可能保持redis密码的保护,并且可以在不绑定IP地址的情况下使用它。因此,现在我们关闭安全性,如果我们进入生产阶段,将重新连接安全设置。