auth_basic within location block doesn't work when return is specified?

Scott McGillivray fourlightson at
Sun Nov 6 15:09:46 UTC 2016

i thought this would work but for some reason it doesn't.

 location /auth {
     auth_basic_user_file /etc/nginx/.htpasswd;
     auth_basic "Secret";

     return 200 'hello';

When i specify the return, 200 or 301, it just skips the auth_basic and processes the return statement.

If i comment out the return statement it works OK. Ideally i want just an /auth endpoint that once authenticated it will 301 redirect to $host, e.g. return 301 http://$host

Can someone explain why this behaves this way and what is the correct configuration.

many thanks
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the nginx mailing list