Назад | Перейти на главную страницу

Использование nginx: требуется аутентификация при запросе с общедоступного IP-адреса, не требуется при локальном

Я написал простое приложение для просмотра файлов, которое обслуживается узлом на порту 3000. Я использую nginx в качестве интерфейса, который проксирует эту службу. Это на моем домашнем сервере.

Я хотел бы иметь возможность требовать базовую HTTP-аутентификацию, когда я обращаюсь к нему по общедоступному IP-адресу, но не когда я дома. У меня такая конфигурация:

location /files {
  satisfy any;
  allow 10.1.0.0/24;
  deny all;
  auth_basic "Authentication Required";
  auth_basic_user_file /etc/access_list;
  proxy_pass http://127.0.0.1:3000/;
}

Однако это не работает. Когда я нахожусь в своей домашней сети в той же подсети, мне все еще требуется выполнить базовую аутентификацию HTTP. Я думал, что порядок «разрешить> запретить> авторизация» в паре с «удовлетворить любое» является правильным. Я здесь что-то не так делаю? Это возможно?

В приведенной выше конфигурации есть опечатка. Подключение осуществляется с 10.1.1.157, но файл конфигурации позволяет только с 10.1.0.0/24.

Исправление простое: замените проблемную строку на следующую:

allow 10.1.1.0/24;