在Apache服务器上同时运行多个Django程序的方法
在同一个Apache实例中运行多个Django程序是完全可能的。当你是一个独立的Web开发人员并有多个不同的客户时,你可能会想这么做。
只要像下面这样使用VirtualHost你可以实现:
NameVirtualHost* <VirtualHost*> ServerNamewww.example.com #... SetEnvDJANGO_SETTINGS_MODULEmysite.settings </VirtualHost> <VirtualHost*> ServerNamewww2.example.com #... SetEnvDJANGO_SETTINGS_MODULEmysite.other_settings </VirtualHost>
如果你需要在同一个VirtualHost中运行两个Django程序,你需要特别留意一下以确保mod_python的代码缓存不被弄得乱七八糟。使用PythonInterpreter指令来将不同的<Location>指令分别解释:
<VirtualHost*> ServerNamewww.example.com #... <Location"/something"> SetEnvDJANGO_SETTINGS_MODULEmysite.settings PythonInterpretermysite </Location> <Location"/otherthing"> SetEnvDJANGO_SETTINGS_MODULEmysite.other_settings PythonInterpretermysite_other </Location> </VirtualHost>
这个PythonInterpreter中的值不重要,只要它们在两个Location块中不同。