首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何配置Apache以在Django通道中运行ASGI?Apache是必需的吗?

如何配置Apache以在Django通道中运行ASGI?Apache是必需的吗?
EN

Stack Overflow用户
提问于 2016-05-08 09:51:52
回答 2查看 14.9K关注 0票数 12

我构建了一个django项目,并使用Apache组合将其部署到生产中。为此,我添加了apache2.conf,如下所示:

代码语言:javascript
运行
复制
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)中的“部署”部分,我有:

  1. 安装了Redis (在我的Django项目服务器上)
  2. 运行工作服务器
  3. 运行Daphne (接口服务器)
  4. 目前我已经停止了Apache,网站拒绝连接。
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-11 08:54:14

正如Lukasa所提到的,我停止了Apache服务器,该服务器最初停止了我的django应用程序的发布。然后运行以下命令:

代码语言:javascript
运行
复制
sudo daphne MyProject.asgi:channel_layer --port 80 --bind 0.0.0.0 -v2
sudo python manage.py runworker -v2

这两个命令开始将应用程序从服务器外部传递给http请求。除了问题贴中提到的其他配置外,不需要其他配置。

票数 7
EN

Stack Overflow用户

发布于 2016-05-08 09:56:16

目前,Apache没有ASGI服务器实现。这意味着您可以继续使用Apache,但您也需要Daphne。本质上,Apache将从您的主要web服务器转变为反向代理。

这样做有潜在的价值: Python开发人员多年来一直在反向代理模式下运行nginx。然而,Daphne是一个非常有能力的web服务器,构建在Twisted的web服务器之上,所以Apache当然是不必要的。

现在,我建议您只使用Daphne运行:让Daphne监听您的主端口,并完全禁用Apache。如果您发现仍然需要Apache的特性,则需要将Apache配置为反向代理:建议的配置文章之一是这张来自数字海洋

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37098504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档