Django频道Nginx制作

Django频道Nginx制作

问题描述:

我有一个django项目,并最近添加了使用websockets的频道。这似乎一切正常,但我的问题是让生产准备就绪。Django频道Nginx制作

我的设置如下:

Nginx web server 
Gunicorn for django 
SSL enabled 

自从我加入渠道的组合。我花了最后一天的时间试图让它工作。

在他们说你在某个端口上运行daphne的所有turtotials上,然后展示如何为此设置nginx。

但是如何让gunicorn服务django?

所以,现在我已经guncorn运行在8001

如果我在另一个端口上运行达芙妮这个Django应用程序,可以说8002 - 它应该怎么知道它的这个Django项目的标准?那么运行工人呢?

Gunicorn,Daphne和runworkers都应该一起运行吗?

+0

我不确定你是否真的需要两者?我没有和达芙妮一起工作过,所以我可能是错的。请检查此线程是否有任何帮助https://*.com/questions/42417919/deploy-to-docker-with-nginx-django-daphne –

我最近回答了类似的question,看看那里的django频道如何工作的解释。

基本上,你不需要gunicorn了。你有daphne这是接受HTTP/Websockets的接口服务器,你有你的工作人员运行django视图。那么显然你有你的渠道后端,把所有东西粘在一起。

为了使它工作,你必须配置settings.py中CHANNEL_LAYERS并运行接口服务器:

$ daphne my_project.asgi:channel_layer

和你的工人:

$ python manage.py runworker

NB!如果您选择redis作为频道后端,请注意您提供的文件大小。如果您有大量的静态文件,请确保NGINX为他们提供服务,否则客户端将遇到由于redis内存不足而可能发生的模糊错误。

+0

我不会推荐daphne用作HTTP的WSGI,因为它需要更多的资源比接收HTTP流量的gunicorn工作者 –