我构建了一个django项目,并使用Apache组合将其部署到生产中。为此,我添加了apache2.conf,如下所示:
WSGIScriptAlias / /home/ubuntu/MyProject/MyProject/wsgi.py
WSGIPythonPath /home/ubuntu/MyProject
<Directory /home/ubuntu/MyProject/MyProject>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
因此,这意味着并不是我的网站上的所有请求都要先转到Apache,然后才允许WSGI发挥作用。所以如果我关掉Apache,这个网站就不能工作了。
我现在已经安装了Django-Channels.根据文档(https://channels.readthedocs.io/en/latest/deploying.html)中的“部署”部分,我有:
发布于 2016-05-11 08:54:14
正如Lukasa所提到的,我停止了Apache服务器,该服务器最初停止了我的django应用程序的发布。然后运行以下命令:
sudo daphne MyProject.asgi:channel_layer --port 80 --bind 0.0.0.0 -v2
sudo python manage.py runworker -v2
这两个命令开始将应用程序从服务器外部传递给http请求。除了问题贴中提到的其他配置外,不需要其他配置。
发布于 2016-05-08 09:56:16
目前,Apache没有ASGI服务器实现。这意味着您可以继续使用Apache,但您也需要Daphne。本质上,Apache将从您的主要web服务器转变为反向代理。
这样做有潜在的价值: Python开发人员多年来一直在反向代理模式下运行nginx。然而,Daphne是一个非常有能力的web服务器,构建在Twisted的web服务器之上,所以Apache当然是不必要的。
现在,我建议您只使用Daphne运行:让Daphne监听您的主端口,并完全禁用Apache。如果您发现仍然需要Apache的特性,则需要将Apache配置为反向代理:建议的配置文章之一是这张来自数字海洋。
https://stackoverflow.com/questions/37098504
复制相似问题