我正在使用 Nginx 作为 python WSGI web 应用程序的反向代理。
它看起来像这样:
location / {
#auth_basic "Administrator Login";
#auth_basic_user_file /var/www/static/.htpasswd;
proxy_pass http://mywebapp_gunicorn;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
在 Web 应用程序中,我有一些管理员页面,我希望它们得到很好的保护,所以现在我在 Web 应用程序内部使用一些身份验证来保护它们,我也想添加 Nginx 身份验证。
如何激活:
auth_basic "Administrator Login";
auth_basic_user_file /var/www/static/.htpasswd;
对于路径:/managers
,但不适用于所有其他 URL。
答案1
您只需添加另一个位置块前您当前拥有的那个,以匹配您想要保护的url。
location /managers {
auth_basic "Administrator Login";
auth_basic_user_file /var/www/static/.htpasswd;
proxy_pass http://mywebapp_gunicorn;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location / {
proxy_pass http://mywebapp_gunicorn;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
因为它在/
1 之前,所以将优先用于路径 /managers 。