Nginx
Nginx 身份驗證僅適用於給定位置
我使用 Nginx 作為 python WSGI web-app 的反向代理。
它看起來像這樣:
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;
對於 path:
/managers
,但不適用於所有其他 URL。
您只需在目前擁有的位置塊之前添加另一個位置塊,以匹配您想要保護的 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; }
因為在前
/
一個,所以會優先用於路徑 /managers 。