2017-12-07 3 views
1

Ich habe ein Problem beim Herstellen einer Verbindung mit ElastiCache Redis von der auf EC2-Instanz installierten Laravel-Anwendung oder sogar von redis-cli aus EC2-Instanz.AWS ElastiCache Redis kann keine Verbindung aus Laravel nad von redis-cli herstellen

Laravel

Ich versuchte Predis mit Konfigurationen in database.php wie

'redis' => [ 
    'client' => 'predis', 
    'default' => [ 
     'host' => env('REDIS_HOST', '127.0.0.1'), 
     'password' => env('REDIS_PASSWORD', null), 
     'port' => env('REDIS_PORT', 6379), 
     'database' => 0, 
     'read_write_timeout' => -1, 
     'timeout' => 0 
    ], 
], 

und bekam 'Error while reading line from the server. [tcp:server here]'

ich mit gleichen Konfigurationen mit phpRedis Erweiterung versucht, verwenden nur 'client' => 'phpredis' ändern und bekam Fehler read error on connection {"exception":"[object] (RedisException(code: 0): read error on connection at vendor/laravel/framework/src/Illuminate/Redis/Connectors/PhpRedisConnector.php:69)

Redis cli

Mit redis cli redis-cli -h host_here -p 6379 -a password_here ich prompt sehen wie host:6379> aber wirft Error: Connection reset by peer

ElastiCache Redis Konfigurationen

enter image description here

Mein EC2 und elastischen Cache Fehler jeden Befehl eingeben sind in die gleiche VPC und mit telnet kann ich verbinden mit redis instance

~$ telnet host 6379 
Trying 172.31.23.113... 
Connected to host. 
Escape character is '^]'. 

Danke für jede Hilfe!

+0

hm, als ich eine neue Redis-Instanz ohne AUTH erstellt habe, hat es angefangen zu arbeiten. Aber das Problem ist immer noch da, warum redis nicht mit AUTH –

+0

funktioniert Kannst du dieses Dokument einmal überprüfen -https: //docs.aws.amazon.com/AmazonElastiCache/latest/UserGuide/auth.html? –

Antwort

1

Ich weiß, das ist ziemlich alt, aber ich hatte das gleiche Problem selbst. Wenn jemand auf dieses Problem stößt, sehen Sie sich die Lösung here und here an.

Es scheint, dass wenn Sie Encryption in-transit in AWS Elasticache aktivieren, verhindert, dass Sie Redis-CLI verwenden, da es keine TLS-Verbindungen unterstützt. Der Wechsel zu einem anderen Client sollte funktionieren. Diese answer enthält eine Liste der TLS-aktivierten Clients.

Edit:

Hat etwas mehr graben und fand, dass stunnel verwenden Sie Ihre Verbindung von redis-cli mit ssl wickeln kann. Here ist eine Anleitung dafür.

Verwandte Themen