У меня относительно простой конфиг:
upstream appserver-1 {
server unix:/var/www/example.com/app/tmp/gunicorn.sock fail_timeout=0;
}
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://appserver-1;
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;
auth_basic "Restricted";
auth_basic_user_file /path/to/htpasswd;
}
location /api/ {
auth_basic off;
}
}
Цель состоит в том, чтобы использовать базовую аутентификацию на всем сайте, кроме /api/
поддерева. Хотя он работает в отношении базовой аутентификации, другие директивы, такие как proxy_pass
, также не действуют /api/
.
Можно ли просто отключить базовую аутентификацию, сохранив другие директивы без копирования и вставки всего?
nginx
http-basic-authentication
Бенджамин Вольвенд
источник
источник
Приведенный ниже конфиг работает для меня для общего доступа к папке с моего диска без какой-либо аутентификации для общей папки, а для остальных сайтов требуется аутентификация
источник