【问题标题】:Subdomain hosting with Django + Nginx +Gunicorn使用 Django + Nginx +Gunicorn 托管子域
【发布时间】:2013-06-12 00:25:06
【问题描述】:

我正在使用 django 为服务器端开发一个 Web 应用程序。它在 android、ios 和前端都有客户端。我正在考虑使用子域来区分这些客户端的 url。差异是由于不同客户端对 url 的响应不同。 我希望能够使用 android.example.comios.example.com...等子域。我的子域是固定的。

您能否帮助我了解我应该采取什么方法来实现这一目标。我读过的一些选项是

  • 用相同的数据库托管两个不同的项目。(对我来说看起来不错,但可能不是最佳选择)
  • 使用站点框架在同一实例上托管。(不确定此选项有多好)
  • 使用虚拟主机托管(真的无法理解如何实现这一点)。
  • 使用子域中间件,如许多答案和一些 Django Snippets 中所述。

请帮助我找到最佳选择,如果可能的话,请提供一些关于如何实现它的教程的链接。谢谢。

【问题讨论】:

    标签: django nginx django-deployment


    【解决方案1】:

    “使用站点框架”在某种程度上与使用相同数据库托管两个项目相同。如果您使用站点框架,您将为每个共享相同代码库和数据库的子域拥有单独的实例,但首先必须在一个设置上有所不同,即SITE_ID

    如果您能够运行多个实例,这肯定有一些优势:

    • 您不需要通过中间件进行额外处理
    • 您可以轻松地为每个站点选择不同的设置,例如。不同的模板路径,使用不同的中间件等,如有必要,甚至可以为每个项目自定义 url
    • 您已经在进行某种负载平衡,因为您将请求定向到单独的实例,即使一个站点崩溃也不应该影响其他站点

    如果您只能运行一个实例,我想您唯一的选择是使用中间件之类的东西,例如。 django-mobile 那么可能值得一看,因为它为您提供了一些很好的工具集来确定客户端的类型等......

    但除此之外,在 SEO 方面,拥有具有相同内容的不同域可能并不总是最佳做法。

    【讨论】:

    • 谢谢。 SEO 根本不是一个标准,因为我不希望搜索引擎显示移动客户端的 URL 等等。我希望他们显示的是网页中显示的实际网址。我仍然不明白一件事,我应该更喜欢站点框架还是项目。并且使用具有不同模型的相同数据库的两个不同项目不会成为问题。如果两个项目中的密钥不同,这只是一个小问题。
    • @SaranshMohapatra 如果站点应该主要使用相同的应用程序等,请使用站点框架......只有当每个站点的代码库确实不同时,才能创建单独的项目 - 但不要这样做没有必要,因为单独的项目很难维护......
    • @Bernahard Vallant 所以基本上你说的是使用站点框架。是的,基本上他们使用相同的东西,但只有一些请求不同,每个客户端的响应不同。但它们基本上是同一个应用程序,几乎所有内容都相似。
    猜你喜欢
    • 2011-12-15
    • 2017-03-13
    • 2016-09-05
    • 2015-11-07
    • 1970-01-01
    • 2013-03-25
    • 2013-03-01
    • 2015-04-25
    • 2017-06-09
    相关资源
    最近更新 更多