Welcome! Log In Create A New Profile

Advanced

Re: nginx nested location and different basic authentication file

Francis Daly
September 29, 2015 04:22PM
On Sun, Sep 27, 2015 at 04:32:56AM -0400, cacrus wrote:

Hi there,

Your Subject: mentions "nested location"; but your config doesn't seem
to show any explicit nesting.

> location /parent/ {
> set $basic_file /nginx/conf/.htpasswd;
> if ($request_uri ~ (visualize|dashboard|settings)){
> set $basic_file /nginx/conf/.dev_pass;
> }

I was going to say "You're using _if_ inside _location_, which you
shouldn't do unless you know why you shouldn't do it".

But when I use something very similar in a nginx-1.9.1 system, it works
for me.

/parent/file.html requires the password from .htpasswd;
/parent/file.html?dashboard requires the password from .dev_pass.

So I'm unable to reproduce your problem, which means that I can't
demonstrate that any "fix" would actually make it work for you.

My first suggestion would be to move those four config lines to be
outside of all location{}s, so have them at server{} level.

When I did that in my test system, it stayed working.

If that does work for you, then you could try to achieve the same using
a map (at http{} level) as already suggested - set a variable for the
password-file to be one thing by default, and have a separate value for
the request_uri values that you care about, and then use that variable
in your config.

> proxy_pass http://<some ip and port >/;
> auth_basic "Restricted";
> auth_basic_user_file $basic_file;
> }
>
> I would like file .htpasswd to be used by default and in case of
> $request_uri having (visualize|dashboard|settings) , auth should happen via
> .dev_pass .
>
> For some reason the authentication is happening only via htpasswd even if
> i have (visualize|dashboard|settings) in the URI .
>
> Any idea , what am i missing?

_if_ inside _location_ may not do what you expect. Especially if there
is more than one _if_ in there; but your example config does not show that.

But your config works for me in 1.9.1.

Good luck with it,

f
--
Francis Daly francis@daoine.org

_______________________________________________
nginx mailing list
nginx@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx
Subject Author Posted

nginx nested location and different basic authentication file

cacrus September 27, 2015 04:32AM

Re: nginx nested location and different basic authentication file

chris-breda September 27, 2015 11:04AM

Re: nginx nested location and different basic authentication file

Francis Daly September 29, 2015 04:22PM

Re: nginx nested location and different basic authentication file

cacrus September 30, 2015 05:35AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 289
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready