Как лучше публиковать Yii2 assets при работе нескольких backend'ов и отдачавать при этом с одного frontend'а?
есть один frontend (nginx) и несколько backend (php-fpm), при этом на каждом бекенде развернуто приложение, которое публикует статику (assets) локально, при этом, отдача страниц проксируется с каждого из бекендов на фронт, а статика отдается непосредственно с frontend сервера (на нем копия статики с каждого из бекендов), вопрос в том как автоматизировать отдачу публикуемых ресурсов (assets manager) с фронтенда, не копируя на него статику вручную, формируемую каждый раз при изменениях?
У AssetsManager есть параметр baseUrl, его можно изменить в настройках бэков (каждый свой) который ведёт на свой поддомен. Далее поднять сервера под все эти поддомены, у которых корень лежит в папке asset(опять же у каждого своя). Должно заработать.
P.S. Немного не понял что вы там публикуете из бэков в локалку и что там с прокси, поэтому могу ошибаться.
Схема такая ruhighload.com/architecture.phps.jpg , схема 3: ruhighload.com/post/%D0%90%D1%80%D1%85%D0%B8%D1%82...
Идея рабочая.. Но тогда получается нужно разворачивать по nginx'у на каждом бекенде, что будет не очень красиво в архитектурном плане (где одна точка входа - на фронте и все идет через него), кроме того не очень удобно в плане масштабирования
Evgeny_Shestakov: Допустим у вас всё устроенно в точности как указано в статье, то прочтите последний пункт про файловые хранилища, рекомендуют для файлов поднять отдельный(ые) сервер(а). Возьмём в пример S3 амазоновские, маунтим к себе бакет, в алиасах укажем @s3 на наш примонтированный диск, а дальше
'components' => [
'assetManager' => [
'baseUrl' => 'my.another.site/assets',
'basePath' => '@s3/asets'
],
],
Если нет возможности примонтировать диск, то придётся свой AssetsManager писать что-ли, чтот не нашёл инфу по этому поводу, отпишитесь если найдёте как ассеты на другой сервер перекидывать.