Django 设置 - 一个项目,使用 Nginx + Apache2 的多个子域

Django 设置 - 一个项目,使用 Nginx + Apache2 的多个子域

我使用 Nginx 作为前端 Web 服务器,将 Python 请求重定向到 Apache + mod_wsgi。一切运行正常。我正在运行一个 Django 项目,我想为我的几个项目应用程序设置子域。

建议结构:

/www/项目/ -

-->/admin/-admin.domain.com

-->/www/ - www.domain.com

-->/common_data/ - 没有子域名

--> 等等

这个设置在哪里完成?Apache 还是在 Django 中完成?Apache 重写规则是执行此操作的最佳方法吗?我更喜欢在浏览器窗口中维护 URL。即http://domain.com/admin/filebrowser/browse/->http://admin.domain.com/filebrowser/browse/

任何建议都值得感激。谢谢

PS:我看到了以下链接:http://www.djangosnippets.org/snippets/1119/http://sharjeel.2scomplement.com/2008/07/24/django-subdomains/http://www.rossp.org/blog/2007/apr/28/using-subdomains-django/但他们似乎并没有做同样的事情。

答案1

在 Apache 中设置多个<VirtualHost>,并将每个指向不同的DocumentRoot

答案2

我目前正在我的 VPS 上执行此操作。这个过程大致分为三个步骤:

  1. 我的子域名的 CNAME,这可以通过您用来管理 DNS 的任何方式完成。
  2. Ngnix 虚拟主机
  3. Apache2 的虚拟主机

这篇文章对我很有帮助: Django 和 Ubuntu Intrepid 年鉴

您的 DNS 条目应如下所示:

sub.domain.com. 3600 IN CNAME domain.com.

在里面/etc/nginx/站点可用目录:

  • 域名.com
  • 子域名.com

在里面/etc/apache2/站点可用目录:

  • 域名.com
  • 子域名.com

不要忘记为每个相应的已启用站点目录。

答案3

我已经找到了解决方案,而且效果很好。不过,由于一些可重复使用的应用程序(例如 django-debug-toobar)模板中的媒体文件路径存在问题,因此存在一些问题。当然,您可以手动修改它们以使其正常工作。

Django 多主机配置

相关内容