我正在运行Django的本地开发环境,并将DB(MariaDB),RabbitMQ和Redis等服务分离到另一个主机示例上。
一切都在按预期进行
除了Redis,Django抛出了.:
python3.11/site-packages/redis/connection.py", line 446, in send_packed_command
raise ConnectionError(f"Error {errno} while writing to socket. {errmsg}.")
redis.exceptions.ConnectionError: Error 32 while writing to socket. Broken pipe.
ERROR:django.request: Internal Server Error: / (2023-11-09 07:29:04; log.py:224)
字符串
但是,如果我配置Django使用localhost redis-server示例,它可以正常工作。
另一台主机上的redis示例可以被django服务器访问,也就是说,我可以从django服务器使用redis-cli -h devservices.orb.local
连接到它(如果相关的话,我使用OrbStack提供服务器主机)。
1条答案
按热度按时间oewdyzsn1#
我们需要先看看Redis的配置,但我想这会解决问题:请验证Redis配置文件(redis.conf)中的绑定配置是否正确。默认情况下,Redis配置为仅接受来自
localhost
的连接。您需要将其设置为0.0.0.0
以接受来自其他主机的连接,或者将其设置为Django服务器的特定IP。