proxy_next_upstream + haproxy
Maxim Dounin
mdounin at mdounin.ru
Thu Nov 29 16:21:37 UTC 2012
Hello!
On Thu, Nov 29, 2012 at 07:39:21PM +0400, Nikolay Grebnev wrote:
> Просьба не ругать за криворукость :)
>
> Придется начать из далека.
> Картинки у нас хранятся в hbase (не очень много, пока всего чистыми данными
> 500 гигов). Извлекаются от туда руби с рельсами. Для ускорения процесса был
> настроен сквид. Который тупо кешировал все
> http://127.0.0.1:8000/show_pictures/........ (он торчал на 8000 порту)
> Потом появился локальный сквид на машинке которая раздает 90% траффика.
> Этот сквид имел парента - предыдущего сквида. Все было нормально.
> Но тут у hetzner-а в DC10 наступил сбой во внутренней маршрутизации. Я с
> перепугу тот сервер перезагрузил (кто знал что не надо). Они потом мне
> прислали "ну типа незапланированный сбой поэтому предупредить не могли). В
> общем, когда все начало работать, то оказалось что картинки раздаются
> только с одного диска, и производительнось отдачи зависит тупо от одного
> диска. И пока не нарастится кеш в памяти то все страшно тормозит!
>
> Срочно сквиды были переведены в режим sibling (с перепугу было настроено
> еще 3 дополнительных сервера под это), Но после этого оказалось что тк урлы
> которые к ним идут отличаются от http://127.0.0.1:8000/ , и, как
> следствие, нифига не закешированы.
> Haproxy мгновенно спас ситуацию - он висит на 127.0.0.1:8000 и берет из
> сквидов именно то что нужно (сквиды переехали на исторический 3128 порт).
>
> Собственно, все. Возможно сквиды умеют работать в режиме акселератора и не
> обращать внимания на название хоста, но я этого быстро не нашел, а нужно
> было спасать ситуацию.
А, т.е. haproxy - это такой модный способ заменить строку
proxy_set_header Host "127.0.0.1:8000";
в конфиге nginx'а? Понятно, так и запишем... ;)
--
Maxim Dounin
http://nginx.com/support.html
Подробная информация о списке рассылки nginx-ru