conditional auth_basic
Maxim Dounin
mdounin at mdounin.ru
Tue Oct 5 15:40:30 MSD 2010
Hello!
On Tue, Oct 05, 2010 at 07:33:40AM +0200, Cedric Jeanneret wrote:
> Hello,
>
> I have a special setup involving a wildcard :
> server {
> server_name *.domain.ltd
> access_log /var/log/nginx/itnux_acces.log main;
> error_log /var/log/nginx/itnux_error.log info;
> add_header X-Devel "$host - production site";
>
>
> location / {
> proxy_pass http://localhost:9095;
> proxy_set_header Host $host;
> }
> }
>
>
> I'd like to add some auth_basic, only if $host is NOT "demo.domain.ltd".
>
> I thought I could make it like that:
> location / {
> proxy_pass http://localhost:9095;
> proxy_set_header Host $host;
> if ($host != 'demo.domain.ltd') {
> auth_basic "Not for everyone ;)";
> auth_basic_user_file /var/www/vhosts/domain.ltd/htaccess;
> }
> }
>
> But it seems that nginx doesn't like it:
> nginx -t
> [emerg]: "auth_basic" directive is not allowed here in /etc/nginx/vhosts/wildcard.domain.ltd.conf:17
> configuration file /etc/nginx/nginx.conf test failed
>
> How can I do this ? Do I have to declare "demo.domain.ltd", and then the wildcard in two distinct servers ?
Yes, use two distinct server{} blocks.
server {
server_name *.domain.ltd;
auth_basic ...
...
}
server {
server_name demo.domain.ltd;
...
}
Maxim Dounin
More information about the nginx
mailing list