Могу ли я скомпилировать и обслуживать статические ресурсы с одного сервера в приложении rails 3.1? - PullRequest
1 голос
/ 19 ноября 2011

Я запускаю приложения Rails 3.1 на 3 серверах приложений (3 узла).При развертывании конвейер ресурсов компилирует ресурсы через ловушку capistrano для всех трех экземпляров, нагрузка на сервер слишком высока.

Что я могу сделать, это предварительно скомпилировать ресурсы локально и загрузить на серверы приложений.

Прежде всего, я запускаю Nginx для распределения запросов по кластерам.

Мой вопрос: могу ли я просто скомпилировать ресурсы только на одном сервере и обслуживать его только через этот экземпляр?

Это уменьшит компиляцию / загрузку ресурсов на всех 3 серверах приложений.Кто-нибудь развертывал этот способ?

1 Ответ

1 голос
/ 20 ноября 2011

Самый простой способ решить эту проблему - это скомпилировать локально, зафиксировать файлы и загрузить без запуска задачи компиляции.

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

Третий способ - загрузить локально скомпилированные ресурсы на все три сервера и разрешить балансировку нагрузки nginx, как и раньше.

Одна вещь, которую вы должны сделать независимо от этого, это установить nginx, чтобы добавить далеко- будущие заголовки для / assets и для установки максимального сжатия.Это уменьшает запросы к этим ресурсам (из-за кэширования на стороне клиента) и сокращает время доставки при первом запросе.

...