Аутентификация с определенными субдоменами

ipredator входит в мой ум.

4
задан 18 December 2011 в 14:59
2 ответа

Однако вам нужно разделить эти два домена на отдельные серверные блоки и оставить замену подстановочных знаков для других, или попробуйте использовать обходной путь, описанный ниже.

1. Директива location работает только с URI, а не с заголовком хоста

2. И если вы попытаетесь сделать что-то вроде

if ($host ~ "(dev|pma).example.com" ) {
        auth_basic            "Website development";
        auth_basic_user_file  /var/www/domain.com/www/dev/authfile;
}

, то получите ошибку

nginx: [Emerg] Директива auth_basic здесь не разрешена в .....

, поскольку директива auth_basic является безусловной

обходной путь ( не очень хорошо протестирован ):

    if ($host ~ "(dev|pma).example.com" ) {
        return 555;
    }

    error_page 555 = @auth;

    location @auth {
        auth_basic            "Website development";
        auth_basic_user_file  /var/www/domain.com/www/dev/authfile;
        try_files $uri /$uri /index.php?$args;
    }
6
ответ дан 3 December 2019 в 02:29

Более простым решением является использование map

map $http_host $auth_type {
    default "off";
    example.domain.tld "Restricted";
}

server {
    auth_basic $auth_type;
}

или

Начиная с nginx 1.5.4+ модуль auth:

http://nginx.org/en/docs/http/ngx_http_auth_request_module. html

6
ответ дан 3 December 2019 в 02:29

Теги

Похожие вопросы