尝试将Django app子目录设置为子域

时间:2013-10-25 10:44:08

标签: django apache .htaccess mod-wsgi

我有一个用Apache和mod_wsgi设置的Django应用程序,它运行正常。我在/ blog /子目录下的同一个应用程序下有一个Zinnia博客。所以,博客是www.mysite.com/blog/。我想做的是将blog.mysite.com/指向/ blog /子目录。我很难过,因为我不知道我是否应该通过Django或Apache来做到这一点。那么,有什么想法吗?

2 个答案:

答案 0 :(得分:0)

必须使用Apache配置完成。

我认为你必须设置一个反向代理,它将收听blog.mysite.com域和代理请求到www.mysite.com/blog /.

不幸的是,我不是Apache专业版,因此​​无法帮助您进行配置。

答案 1 :(得分:0)

完全从内存中无法立即测试,但在VirtualHost for blog.mysite.com中将其安装为:

WSGIScriptAlias / /some/path/wsgi.py/blog

换句话说,您仍然使用mod_wsgi挂载它,但将“/ blog”添加到目标WSGI脚本路径的末尾。这应该从内存中导致Apache和mod_wsgi重新映射,以便'/ blog'自动添加为Django应用程序看到的URL的一部分。因此,它应该映射到Django urls.py中的URL名称空间中该位置映射的博客。

请注意,因为您使用不同的WSGIScriptAlias进行操作,它实际上会在内存中以与第一个不同的子解释器加载Django站点的第二个副本。如果这是不合需要的,您可以使用WSGIApplicationGroup指令覆盖它们运行的​​应用程序组并将它们设置为相同。最好使用mod_wsgi守护进程模式,如果你还没有,并让它们与Apache子进程进程不同,因为这通常比使用嵌入模式更好。