Nginx: изменение upstream для выбранных ip адресов


Tagged , , , ,

Обожаю nginx. Быстрый и лаконичный способ отдавать различные бэкэнды для выбранных ip адресов. Может быть полезно, например для тестирования, пуская выбранные ip адреса на новую версию сайта (с другой версией php). Или для выделения «привилегированным» пользователям отдельного бэкэнда для более быстрой работы. В общем применений может быть множество.

# Список особых адресов
geo $managed_ips {
    default 0;
    10.0.1.5/32 1;
    10.0.2.3/32 1;
    10.0.3.0/24 2;
} 

# Определяем куда пойдут особые адреса 
map $managed_ips $fcgi_to {
    default    "unix:/var/run/php5-fpm.sock"; # php 5
    1          "127.0.0.1:9000"; # php 7.1
    2          "10.5.5.10:9000"; # php 7.4 
}

Далее в нужном location направляем пользовователей к соответствующему бэкэнду.

location / {
    ...
    fastcgi_pass $fcgi_to; 
    ...
}

Вместо fastcgi_pass может быть proxy_pass, в зависимости от того что нам нужно сделать.

Share:

No comments

RSS / trackback

Respond