Я использую Nginx в качестве обратного прокси для веб-приложения WSGI на Python.
Выглядит это примерно так:
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;
}
Внутри веб-приложения у меня есть несколько страниц для администраторов, которые я хотел бы очень защитить, поэтому теперь я использую некоторую аутентификацию внутри веб-приложения для их защиты, я также хотел бы добавить Nginx auth.
Как активировать:
auth_basic "Administrator Login";
auth_basic_user_file /var/www/static/.htpasswd;
Для пути: /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;
}
Потому что это до /
один, он будет использоваться преимущественно для пути / менеджеров.