在同一个 apache 服务器上运行 django 和 flask
Posted
技术标签:
【中文标题】在同一个 apache 服务器上运行 django 和 flask【英文标题】:Running django and flask on same apache server 【发布时间】:2012-03-10 13:36:57 【问题描述】:我正在尝试。
WSGISocketPrefix /var/www/wsgi
<VirtualHost *:80>
ServerAdmin name@email.com
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/
LogLevel warn
WSGIDaemonProcess apache processes=2 maximum-requests=500 threads=1
WSGIProcessGroup apache
Alias /media /var/www/media/
WSGIScriptAlias / /var/www/djangoapps/django.wsgi
WSGIScriptAlias /app1 /var/www/flaskapps/app.wsgi
</VirtualHost>
-
第一个
WSGIScriptAlias
在根目录下运行一个django 应用程序:domain.com。
WSGIScriptAlias
的第二个实例需要在子域中运行烧瓶应用程序:app1
。
但是由于主站点位于 django 上,当我尝试点击:domain.com/app1
时,django 的 urls.py
尝试处理该 url 命令。但是 urls.py 不应该处理它,因为它是一个独立的烧瓶应用程序。
任何想法我该怎么做?
【问题讨论】:
【参考方案1】:我不确定这是否能解决问题,但您是否尝试过更改脚本别名的顺序,以便在 /
之前找到 /app1
?
WSGISocketPrefix /var/www/wsgi
<VirtualHost *:80>
ServerAdmin name@email.com
ServerName domain.com
ServerAlias www.domain.com
DocumentRoot /var/www/
LogLevel warn
WSGIDaemonProcess apache processes=2 maximum-requests=500 threads=1
WSGIProcessGroup apache
Alias /media /var/www/media/
WSGIScriptAlias /app1 /var/www/flaskapps/app.wsgi
WSGIScriptAlias / /var/www/djangoapps/django.wsgi
</VirtualHost>
【讨论】:
【参考方案2】:对于任何想在 2018 年实现同样目标的人来说,这真的帮助了我:
https://www.phusionpassenger.com/library/deploy/apache/deploy/python/
我知道这是题外话,但在找到来自乘客的描述的链接之前,我发现这个问题像 20 次搜索一样......
这里的 ev 是本教程的摘录:
<VirtualHost *:80>
ServerName www.phusion.nl
DocumentRoot /websites/phusion/public
<Directory /websites/phusion>
Allow from all
Options -MultiViews
# Uncomment this if you're on Apache >= 2.4:
#Require all granted
</Directory>
Alias /subapp /websites/secondapp/public
<Location /subapp>
PassengerBaseURI /subapp
PassengerAppRoot /websites/secondapp
PassengerAppType wsgi
PassengerStartupFile passenger_wsgi.py
</Location>
<Directory /websites/secondapp/public>
Allow from all
Options -MultiViews
# Uncomment this if you're on Apache >= 2.4:
#Require all granted
</Directory>
【讨论】:
以上是关于在同一个 apache 服务器上运行 django 和 flask的主要内容,如果未能解决你的问题,请参考以下文章
使用 apache2 在 mod_wsgi 上运行 django python 3.4
使用 PHP 或 Django 在 Apache 中重定向八位字节流