auth_basic error nginx: [emerg] "auth_basic" directive is not allowed here in
Maxim Dounin
mdounin at mdounin.ru
Wed Oct 15 12:09:05 UTC 2014
Hello!
On Wed, Oct 15, 2014 at 07:55:07AM -0400, shambler81 wrote:
> http://nginx.org/ru/docs/http/ngx_http_auth_basic_module.html
> По документации все должно работать вот так:
>
> if ($host ~ "(dev|pma).example.com" ) {
> auth_basic "Website development";
> auth_basic_user_file /var/www/domain.com/www/dev/authfile;
> }
>
>
> Но оно выдает: auth_basic error nginx: [emerg] "auth_basic" directive is not
> allowed here in
Документация говорит, что директиву auth_basic можно использовать
в контексте "http, server, location, limit_except". Использовать
к контексте if директиву auth_basic нельзя.
[...]
> ПОЧЕМУ ?
http://wiki.nginx.org/IfIsEvil
Правильное решение в данном случае - отдельный блок server{}.
В общем случае - директива auth_basic понимает переменные, и
соответственно там можно написать "Closed site" или "off" в
зависимости от ранее проверенных условий.
--
Maxim Dounin
http://nginx.org/
Подробная информация о списке рассылки nginx-ru