从单个常见的Python Web框架(即:Pylons,TurboGears等)运行多个站点的好方法(或至少是聪明的)是什么?我知道你可以根据域或路径进行重定向,重写URI以指向特定于站点的位置,我也看到了一些if site == 'site1' / elseif / elseif / etc
我想避免的野蛮" .
Django内置了这个.请参阅站点框架.
作为一种通用技术,在数据库模式中包含一个"主机"列,该列附加到您希望特定于主机的数据,然后Host
在检索数据时在查询中包含HTTP标头.
使用带有mod_python的apache上的Django,我只需使用以下apache配置即可托管多个(不相关的)django站点:
DocumentRoot /www/site1 ServerName site1.com SetHandler python-program SetEnv DJANGO_SETTINGS_MODULE site1.settings PythonPath "['/www'] + sys.path" PythonDebug On PythonInterpreter site1 DocumentRoot /www/site2 ServerName site2.com SetHandler python-program SetEnv DJANGO_SETTINGS_MODULE site2.settings PythonPath "['/www'] + sys.path" PythonDebug On PythonInterpreter site2
不需要多个apache实例或代理服务器.为每个站点使用不同的PythonInterpreter指令(您输入的名称是任意的)使命名空间保持独立.