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