2013-06-15 2 views
1

Я разрабатываю веб-приложение, использующее django для серверной части. Он имеет клиентов в android, ios и frontend. Я думал об использовании субдоменов для дифференцирования URL-адресов этих клиентов. Дифференциация объясняется тем, что ответы на URL-адреса различны для разных клиентов. Я надеялся, что смогу сделать, используя поддомены как android.example.com, ios.example.com ... и т. Д. Мои поддомены фиксированы.Поддомен хостинга с Django + Nginx + Gunicorn

Можете ли вы помочь в определении того, какой подход я должен предпринять для достижения этого. Некоторые опции, которые я прочитал в

  • хостинг два разных проекта с одной базой данных. (Кажется довольно хорошо для меня, но не может быть оптимальным)
  • хостинг на тот же экземпляр, используя структуру сайтов. (Не уверен, как в насколько хороша эта опция)
  • Хостинг с использованием виртуального хоста (на самом деле не способен понять, как этого достичь).
  • Использование промежуточного ПО поддомена, как упоминалось во многих ответах, а также в некоторых фрагментах Django.

Пожалуйста, помогите мне с наилучшим вариантом и, если возможно, со ссылками на некоторые уроки о том, как его достичь. Благодарю.

ответ

1

«Использование рамок сайтов» - это то же самое, что и размещение двух проектов с одной и той же базой данных. Если вы будете использовать фреймворки сайтов, у вас будут отдельные экземпляры для каждого поддомена, которые имеют одну и ту же базу кода и базу данных, но в первую очередь должны отличаться в одной настройке, которая равна SITE_ID.

Если вы можете запускать несколько экземпляров этого наверняка имеет некоторые преимущества:

  • Вам не требуется дополнительная обработка с помощью промежуточного слоя
  • Вы можете легко выбрать различные настройки для каждого сайта, например , различные шаблоны шаблонов, использовать различное промежуточное программное обеспечение и т. д., даже при необходимости настроить URL-адреса для каждого проекта.
  • . Вы уже выполняете какие-либо балансировки нагрузки, поскольку вы направляете запросы на отдельные экземпляры, также если один сайт выходит из строя, он не должен влияют на другие

Если вы можете запускать только один экземпляр, я предполагаю, что ваш единственный выбор использует нечто вроде промежуточного программного обеспечения, например. django-mobile то, может быть, что-то, чтобы посмотреть, поскольку он предлагает вам хороший набор инструментов для определения типа клиента и т. Д. ...

Но, кроме того, обратите внимание, что не всегда лучше иметь отдельные домены с одним и тем же контентом когда дело доходит до SEO.

+0

Спасибо. SEO совсем не является критерием, поскольку я не хочу, чтобы поисковая система показывала URL-адреса для мобильных клиентов и всех. Все, что я хочу показать, это фактический URL-адрес, отображаемый на веб-странице. Я все еще ничего не понимал, должен ли я отдавать предпочтение рамкам сайтов или проектам. И не будет проблем с двумя разными проектами, использующими одну и ту же базу данных с разными моделями. Просто небольшая проблема будет проблемой, если секретный ключ в обоих проектах будет другим. –

+0

@SaranshMohapatra Если сайты должны в основном использовать одни и те же приложения и т. Д., Пойдите с инфраструктурой сайтов ... Только если ваша база кода действительно будет отличаться для каждого сайта, создайте отдельные проекты - но не делайте этого, если это не обязательно, так как отдельные проекты будет сложно поддерживать ... –

+0

@ Bernahard Vallant Итак, в основном вы говорите, что используете рамки сайтов. Да, в основном они используют одно и то же, но только для некоторых запросов разные ответы разные для каждого клиента. Но они в основном одно и то же приложение с почти всем подобным. –

Смежные вопросы