我有一个 Amazon EC2 实例运行我用 Flask 构建的动态网站。
我不确定在同一个 ec2 实例上运行不同 webapp 的最佳方法是什么。我在这里阅读了有关应用程序调度的信息:http: //flask.pocoo.org/docs/patterns/appdispatch/和有关 Apache2 虚拟主机的信息:http ://blog.agdunn.net/?p=162 。
我想在 ec2 实例上运行我的主网站 www.mydomain.com(我已经在工作),然后链接到我构建的其他 Flask 应用程序,例如在 www.subdomain.mydomain.com 上。
这可以通过使用虚拟主机还是在 wsgi 层使用应用程序调度来完成?如果是这样,哪个更好?
一如既往地非常感谢帮助和建议。
编辑:感谢您的回复
现在我正在尝试运行主站点,这是一个存储在var/www/mysite
主域之外的烧瓶应用程序domain.co.za
和另一个应用程序,它位于var/www/flaskhello/flaskhello
子域之外hello.domain.co.za
。目前,测试子域应用程序只是一个烧瓶 hello world 应用程序。我有如下指定的 apache2 配置文件和 wsgi 文件。
我遇到的问题是,flaskhello 应用程序同时从domain.co.za
和显示hello.domain.co.za
。由于某种原因,该var/www/flaskhello/flaskhello/index.wsgi
文件似乎优先于var/www/mysite/index.wsgi
,并且只有我对其中的sys.path.insert...
行所做的更改似乎才有效。
编辑 2
现在我已经阅读了这个 Google Groups thread,这与我正在尝试做的事情类似,但使用的是 DJango。仍然没有成功,但这让我们怀疑这是否WSGIApplicationGroup %{GLOBAL}
是导致问题的原因。我尝试对此进行一些更改,但我不完全确定我在做什么,也找不到任何关于如何在 WSGI 中使用 ApplicationGroups 的好的文档。
再次感谢您的帮助。
--
我有以下文件
etc/apache2/sites-enabled/019-domain.co.za
和etc/apache2/sites-available/domain.co.za
<VirtualHost *:80>
WSGIDaemonProcess index
WSGIScriptAlias / /var/www/mysite/index.wsgi
<Directory /var/www/index>
WSGIProcessGroup index
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
etc/apache2/sites-enabled/018-hello.domain.co.za
和etc/apache2/sites-available/hello.domain.co.za
<VirtualHost *:80>
WSGIScriptAlias / /var/www/flaskhello/flaskhello/index.wsgi
<Directory /var/www/index>
WSGIProcessGroup index
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
var/www/mysite/index.wsgi
import sys
sys.path.insert(0,'/var/www/mysite')
from index import app as application
var/www/flaskhello/flaskhello/index.wsgi
import sys
sys.path.insert(0,'/var/www/flaskhello/flaskhello')
from index import app as application