Двойное условие для nginx

По дефолту nginx не понимает двойных условий и вложенных if-ов. Чтобы обойти этот недостаток можно использовать хитрость приведенную ниже.

set $root "/var/www/default/";
set $r 1;
if ($host != site.ru){
    set $r 0;
}
if ($remote_addr !~ (81.27.56.160|127.0.0.1)){
    set $r 0;
}
if ($r = 1){
    set $root "/var/www/site.ru/";
}
root $root;


Если оно их двух первых условий не выполниться, то будет использоваться дефолтный документ рут.
Понравился пост? Поделись с друзьями:

0 комментариев

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.