Всех приветствую!
Вообщем следующая ситуация: есть портал сейчас крутится на самописной cms. Хочу перевести его на фреймворк и по личным предпочтениям выбираю конечно же Yii.
Теперь у меня серьезная дума по архитектуре приложения.
Описание проекта:
Есть портал, в нем каждая тематика вынесена на свой поддомен для улучшения сео. Исторически сложилось, что каждый из этих поддоменов(субпорталов) жил своей жизнью, со своей архитектурой бд, со своими модулями и расширениями и даже со своей базой данных пользователей. Имелось отдельное приложение, которое работало по принципу openid и авторизовывало пользователей на поддоменах, если они авторизовались на каком-нибудь поддомене.
Теперь в добавок ко всему нужно к этому порталу прикрутить конструктор сайтов, который будет из себя представлять название организации в поддомене(enterprise_name.site.ru). Для каждого поддомена сейчас своя админка.
Сейчас получается, что 1 поддомен - это 1 приложение со своим ядром и бд. Делалось, как мне объяснили, это чтобы можно было легко перетащить любой из поддоменнов на отдельный сервер, в случае если его часто ддосят или просто он стал нагруженным. Также нужно будет вынести как-то отдельно мобильную версию сайта, пока думаю это сделать по принципу news.site.ru/mobile.
Идеи, которые есть в голове:
Я считаю, что ядро должно быть одно, а каждый поддомен должен быть как бы надстройкой над ядром(какие-то свои котроллеры, модельки, вьюхи, конфиги и т.д.). Придерживаюсь принципа, предложенного в Yiinitializr. И держать каждый поддомен, как отдельное приложение(как это сделано с frontend и backend в Yiinitializr), папки с ядром(framework) и common вынести на отдельный сервер и примонтировать их к серверу, на котором лежит приложение(надстройка). Базу данных для приложения держать на сервере, где папка с приложением. Это делаю с целью того, что если ддосят сервак с сайтом, то он просто отваливается и не вешает другие например. А конструктор сайтов сделать, как одно отдельное приложение и пользоваться урл мэнэджером. Админки(бэкэнды) у всех думаю сделать через модули.
Т.е. папки на первом уровне будут common(примонтирована, содержит общие модули, контроллеры и т.д. для всех), constructor(конструктор сайтов со своим урл менеджером, который поддомен передает, как гет параметр), news, politics, entertainment, auto и т.д.(поддомены по тематикам портала).
Проблемы: если монтировать, то приложение может очень долго работать по понятным причинам.
1. У кого какие есть мысли как еще это можно организовать ? Буду очень благодарен
2. Для данного случая на сколько будет удобно использовать nginx+php-fpm ? Или удобнее будет nginx фронтендом к апачу сделать ?
С Yii работал относительно не много, но он мне очень нравится. Поэтому если получится всё это дельце провернуть на Yii, то будет просто класс ))
Помогите решить с архитектурой приложения
Re: Помогите решить с архитектурой приложения
Бедняга, наверное так долго писал, а всем лень читать Сформулируй более кратко, разбей на отдельные вопросы, по возможности.
Re: Помогите решить с архитектурой приложения
Как вариант: можно отказаться от вынесения ядра YII и commmon на отдельный сервер, а использовать на каждом сревере копию. Для одновременного обновления ядра и common можно например настроить git который при push будет копировать код на сервера.IvanChe писал(а):Проблемы: если монтировать, то приложение может очень долго работать по понятным причинам.
Прочитав пост можно было не писать второе предложение Вашего ответа._axl писал(а):Бедняга, наверное так долго писал, а всем лень читать Сформулируй более кратко, разбей на отдельные вопросы, по возможности.
YII2?, начинаю продолжать заканчивать делать. I'm gonna go build my own php-framework, with blackjack and hookers. In fact, forget the php-framework!
Re: Помогите решить с архитектурой приложения
Да, скорее всего так и придется сделать. СпасибоКак вариант: можно отказаться от вынесения ядра YII и commmon на отдельный сервер, а использовать на каждом сревере копию. Для одновременного обновления ядра и common можно например настроить git который при push будет копировать код на сервера.
А что можете сказать про Yiinitializr ? Какие есть ему альтернативы? С какими проблемами обычно сталкиваются при его использовании?
Я в нем увидел приличное кол-во .htaccess файлов. На сколько проблемно будет их переписать на nginx ?
Re: Помогите решить с архитектурой приложения
Проблем с nginx не будет. А вот проблем с самим Yiinitializr возникло много, временно отказался, ошибок довольно много, автор уже 8 дней не отвечает на pull-request..
Re: Помогите решить с архитектурой приложения
Только я начал запускать виртуалку и разворачивать новый проект, как прочел Ваше сообщение... Видимо спасибо, что огородили от неприятностей.Проблем с nginx не будет. А вот проблем с самим Yiinitializr возникло много, временно отказался, ошибок довольно много, автор уже 8 дней не отвечает на pull-request.
Значит по старинке разворачиваю всё с нуля ...
Re: Помогите решить с архитектурой приложения
Все зависит от сроков. У меня довольно сжатые сроки, поэтому не было времени глубоко разобраться со всеми нюансами. Знакомые начали долгосрочный проект на Yiinitializr и довольны.