Вы хотите использовать nginx в качестве обратного прокси-сервера для django с дополнительным уровнем авторизации?Вы просто перемещаете директивы auth_basic
и auth_basic_user_file
из блока location
в блок server
:
upstream gunicorn_server {
server unix:</path/to/socket/pseudo/file>;
}
server {
listen ...;
server_name ...;
auth_basic "Login Required";
auth_basic_user_file etc/nginx/.htpasswd;
... # other parameters
location / {
try_files $uri @gunicorn;
}
location @gunicorn {
proxy_pass http://gunicorn_server;
}
}
Обновление
Предполагая, что есть "область администратора ", которая включает в себя /admin.html
и /admin/any/other/uri
для дополнительной защиты этой области с помощью HTTP Basic Auth, вы можете использовать следующую конфигурацию:
upstream gunicorn_server {
server unix:</path/to/socket/pseudo/file>;
}
server {
listen ...;
server_name ...;
... # other parameters
location / {
try_files $uri @gunicorn;
}
location /admin {
auth_basic "Login Required";
auth_basic_user_file etc/nginx/.htpasswd;
try_files $uri @gunicorn;
}
location @gunicorn {
proxy_pass http://gunicorn_server;
}
}
Для защиты одного файла admin.html
заменить location /admin {
наlocation = /admin.html {
.