【问题标题】:AWS Elasticache Redis connection using laravel使用 laravel 的 AWS Elasticache Redis 连接
【发布时间】:2018-12-04 18:42:52
【问题描述】:

这些是我当前使用的配置。

.env 文件中

CACHE_DRIVER=redis
REDIS_HOST="Primary Endpoint"
REDIS_PASSWORD="Password"
REDIS_PORT=6379
REDIS_SCHEME =tcp

config/database.php

我收到这样的错误ConnectionException in AbstractConnection.php line 155: No connection could be made because the target machine actively refused it. [tcp://127.0.0.1:6379]

我想知道.env文件和config/database.php文件中的正确配置。

注意:

  • Laravel 5.3 版
  • predis 版本 1.1.*@dev

【问题讨论】:

  • 弹性缓存是否允许远程连接?
  • 是的,这是允许的。
  • 我认为您的新配置未加载。尝试运行php artisan config:clearphp artisan cache:clear,并重新启动所有队列。

标签: laravel amazon-elasticache predis


【解决方案1】:

尽管安全组设置良好,但我的 AWS EC2 (RedHat 8) 实例没有连接到我的 AWS Elastcache 时遇到了同样的问题。 这解决了我的问题:

/usr/sbin/setsebool httpd_can_network_connect=1

默认情况下,SELinux 不允许 Apache 建立套接字连接。更多信息可以找到here

我的 laravel config/database.php 文件如下:

我链接到 Redis 的安全组有以下入站规则:

一切顺利。

【讨论】:

  • 有点跑题了,但为了更加安全,我宁愿将 Redis 安全组的源设置为指向 EC2 的安全组。
【解决方案2】:

首先,您应该在您的服务器上安装并启动 Redis 服务器。如果没有安装启动 redis 服务器。以下是安装和启动 redis 服务器的命令

  1. 打开终端并点击以下命令

    sudo apt-get install redis-server

  2. 点击以下命令检查是否安装了Redis

    redis 服务器

  3. 要启动 Redis 服务器,请使用以下命令

    服务 redis-server 启动

  4. 要在系统重启时自动重启 Redis 服务器,请使用以下命令

    update-rc.d redis-server 启用

    update-rc.d redis-server 默认值

参考 https://medium.com/@petehouston/install-and-config-redis-server-on-ubuntu-linux-16-04-3c59729e12cc

https://tuts.codingo.me/improve-site-loading-speed-using-redis

【讨论】:

  • Faizan 我认为 elasticache 是使用 redis 的单独服务,而不是在 Web 服务器(例如 ec2)本身上运行的 redis。
猜你喜欢
  • 2020-11-01
  • 2018-05-21
  • 2018-12-29
  • 2018-07-11
  • 2019-09-12
  • 2020-10-26
  • 2020-10-26
  • 1970-01-01
  • 2021-06-12
相关资源
最近更新 更多