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