我正在通过docker-compose在nginx后面的daphne上运行Django通道。我在通道层使用Rabbitmq。 当通道尝试连接到我的生产服务器上的rabbitmq时,该连接将被立即终止。 通道日志输出(每秒重复一次):
web_channels_1 | 2019-10-22 14:15:03,991 INFO Channels connecting to RabbitMQ at amqp://user:bitnami@rabbitmq:5672
web_channels_1 | 2019-10-22 14:15:03,994 ERROR An open stream was garbage collected prior to establishing network connection; call "stream.close()" explicitly.
web_channels_1 | 2019-10-22 14:15:03,995 WARNING Connect/run on RabbitMQ failed: OSError(9, 'Bad file descriptor'); will retry in 1.000000s
这只是运行debian 9的生产服务器上的问题,我无法在运行debian 9的任何本地计算机上重现它。 当使用Django调试服务器中的构建而不是nginx + daphne时,问题仍然存在。
Django通道层设置:
CHANNEL_LAYERS = {
"default": {
"BACKEND": "channels_rabbitmq.core.RabbitmqChannelLayer",
"CONFIG": {
"host": 'amqp://user:bitnami@rabbitmq:5672',
},
},
}
Docker-compose rabbitmq服务:
rabbitmq:
image: 'bitnami/rabbitmq:latest'
networks:
- database_network
restart: always
该网络具有网桥驱动程序,并与daphne服务共享。
如果有人知道这可能是什么,将不胜感激。