【发布时间】:2017-01-18 17:20:21
【问题描述】:
我今天发现了mod_wsgi-express,我认为这是一个非常酷的项目。 我不敢相信部署 Python/Django Web 应用程序只需要这一条命令。
mod_wsgi-express start-server project/wsgi.py
但是,文档似乎仍然丢失(或者我没有找到?)。据我所知,官方文档here 中没有提到它。
我在同一台机器上托管了几个小站点,因此使用了 VirtualHost。所以我需要像这样将它代理到另一个端口:
<VirtualHost *:80>
ProxyPreserveHost On
ServerName example.com
ProxyPass "/" "http://localhost:8000"
</VirtualHost>
到目前为止一切顺利。我正在运行 mod_wsgi-express,如下所示:
mod_wsgi-express start-server --url-alias /static /path/to/static project/wsgi.py
你看,我正在尝试在 mod_wsgi-express 本身中设置静态文件配置。但是,不提供静态文件并给出 502 代理错误。
所以代理动态请求是有效的,但不是静态文件。直接在端口 8000 访问时,站点也是工作文件。我在这里缺少什么?
当然,我可以在 VirtualHost 本身中添加配置来提供这些静态文件,但如果它与 mod_wsgi-express 一起使用,它将使配置更简单,更易于部署。
【问题讨论】:
-
为了在 mod_wsgi-express 前面设置 Apache 作为代理,您可能需要阅读 blog.dscpl.com.au/2015/06/… 和 blog.dscpl.com.au/2015/07/… 忽略它在 Docker 中运行 mod_wsgi-express 的事实。相同的概念适用。
-
非常感谢@GrahamDumpleton 第二篇文章确实非常详细地介绍了上述问题。在您的帖子之后,我很容易解决了这个问题。荣誉:)
标签: python django apache mod-wsgi