2013-10-09 1 views
0

У меня проблема с Laravel4. Я создал простой сайт для партнеров, основанный на Laravel4 Bootstrap Starter (https://github.com/andrew13/Laravel-4-Bootstrap-Starter-Site). Проблема в том, что сайт расположен на двух разных компьютерных серверах с фронтальным балансиром перед ними. Бассет генерирует CSS & JS-файлы в public/assets/compiled, но у меня есть разные контрольные суммы на разных серверах.Loadbalancer разрывает активы в Laravel4

Поэтому он иногда загружает файлы CSS с сервера1, иногда с сервера2. Когда HTML сгенерирован S1 & Файлы CSS по S2 есть ошибка 404.

Вы можете увидеть пример этой проблемы здесь: http://affiliate.pirrit.com (обновить его несколько раз)

+0

Вы когда-нибудь находили решение? – pthurmond

ответ

0

Я не знаю, как Бассет работает, но если вы можете выводить имя файла (не HTML, фактический файл) без хеша, вы можете использовать H5BP's rewrite rule, чтобы использовать хэш в HTML и перейти к актуальному файлу. Это дает вам преимущество кэширования без ошибок, которые вы испытываете за балансировкой нагрузки.

Также есть nginx version, так как ваш сервер (или, по крайней мере, ваш балансировочный балансир нагрузки) представляется nginx.

Наконец, это, если не по теме,

  1. Вы убедились, что ваши сеансы «липкие» (или сделали, что ваши сеансы являются постоянными на центральное хранилище?). Балансировка нагрузки имеет тенденцию испортиться, если не принять осторожность
  2. Каждый веб-запрос может выглядеть так, как будто он поступает от одного и того же пользователя (например, вашего балансира нагрузки), если пользовательский пользовательский/IP-адрес пользователя не передается на ваши исходные серверы.

Просто укажите, что в случае, если вы столкнетесь с этим. Это полностью не соответствует теме Basset. Это то, с чем я столкнулся.