обслуживание и балансировка нагрузки для веб-сервисов на основе Rack? - PullRequest
0 голосов
/ 07 июля 2011

как часть нашей архитектуры, мы используем только внутренние HTTP-сервисы на основе HTTP для доступа к данным, которые должны совместно использоваться приложениями. в настоящее время они реализованы как приложения Sinatra.

на каждой машине веб-службы (размещенной в EC2) мы используем haproxy для загрузки запросов балансировки и тонкие для их обслуживания.

Мне любопытно, что считается текущей «лучшей практикой» для обслуживания приложений такого типа, особенно когда нет статического контента.

есть ли преимущества в использовании nginx и / или единорога в этой настройке? Я видел несколько предложений по использованию одновременно nginx и haproxy, но не уверен, какое значение это добавляет.

1 Ответ

0 голосов
/ 25 июля 2011

Если вы отправляете HTTP-трафик через HAProxy, преимущество перед Nginx заключается в возможности проверять, изменять и по-разному реагировать на каждый запрос на основе заголовков, URL-адресов, файлов cookie и другой информации в пакетах.

Nginx также может делать некоторые интересные вещи, но в большинстве случаев, если вы на самом деле не обслуживаете контент с Nginx, его использование не будет превосходить использование HAProxy.

Что касается вашего вопроса о передовых практиках, онвсе зависит от того, что вы пытаетесь сделать.Я видел установки, в которых HAProxy настроен на балансировку нагрузки с дюжиной тонких серверов, где только половина доступна одновременно, а другая половина становится доступной в часы пик (в зависимости от количества соединений).Это особенно хорошо, если вы используете экземпляры EC2, которые могут быть запущены на лету, чтобы не платить за ресурсы, которые вы не используете.

...