Балансировщик нагрузки с Laravel Forge получил 404 CSS - PullRequest
0 голосов
/ 11 января 2019

У меня есть два сервера, на которых размещены два идентичных приложения Laravel. Скажем, Сервер Один и Сервер Два. И есть Балансировщик нагрузки, назовем этот LB-сервер.

Я настроил это на Laravel Forge. Но когда я указываю домен на LB. Я получил случайный 404 CSS не найден. Я использую Laravel Mix и компилирую их при развертывании. Поскольку два сервера получили разное развертывание, разные версии CSS, а также JS.

Что произойдет, если я позвоню в домен и продолжу обновлять сервер, я получу 404 CSS. Так как LB занимается Round Robin Load Balancing.

Проблема в том, что когда я называю доменное имя, LB-сервер обслуживает Server One. После того, как я продолжаю обновлять, LB-сервер обслуживает второй сервер. В то время CSS все еще называет Server One CSS.

Как я могу это исправить?

Примечания: я знаю, что я должен поставить свои CSS / JS / Изображения должны поставить на S3 или CDN. Пока не могу использовать эти опции. Я не хочу также использовать мой скомпилированный CSS для управления версиями.

1 Ответ

0 голосов
/ 11 января 2019

Вы должны изменить свое развертывание: генерируйте файлы только один раз и синхронизируйте их с серверами вместо того, чтобы генерировать их на каждом производственном сервере каждый (например, rsync).

Другим (не элегантным) способом может быть использование липких сессий, LB установит cookie и впоследствии всегда направляет пользователя к одному и тому же бэкэнду (см. Документацию LBs).

...