Re: Балансировка между HTTP и FastCGI бэкендами
Maxim Dounin
mdounin at mdounin.ru
Wed Apr 29 12:21:27 UTC 2015
Hello!
On Wed, Apr 29, 2015 at 06:56:39AM +0300, Bogdan wrote:
> Добрый день.
>
> В связи с миграцией на новую версию приложения хочется подать часть
> нагрузки на новый HTTP-бэкенд.
>
> Пока в голову приходит только двойное проксирование через два отдельных
> локальных server, один из которых будет передавать трафик на http, а второй
> - на fastcgi-бэкенды.
>
> Может быть есть более гуманные методы?
Можно воспользоваться возможностями модуля rewrite, и по
какому-либо признаку (например, с помощью split_clients) часть
трафика отправить в отдельно место.
Если конфигурация простая - то можно даже обойтись одной
директивой if, как-то так:
split_clients $remote_addr $new {
0.5% 1;
* 0;
}
server {
...
location / {
if ($new) {
proxy_pass http://new.example.com;
}
fastcgi_pass old.example.com;
}
}
Документация тут:
http://nginx.org/ru/docs/http/ngx_http_split_clients_module.html
http://nginx.org/ru/docs/http/ngx_http_rewrite_module.html
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru