Аутентификация каталога nginx приводит к запрету 403 несмотря на правильные учетные данные - PullRequest
0 голосов
/ 26 января 2020

У меня есть сайт WordPress. Я хочу сделать некоторые файлы доступными только через аутентификацию по имени пользователя и паролю. Для этого я просто хочу использовать аутентификацию nginx. Итак, я сделал следующие шаги:

1) Создайте файл .htpasswd с зашифрованным паролем для пользователя asdf: sudo htpasswd -c /etc/nginx/.htpasswd asdf

Затем мне будет предложено ввести и повторно ввести пароль. Файл создан и имеет следующие права доступа:

-rw-r - r-- 1 root root 43 26 января 13:39 .htpasswd

2) Я изменяю конфигурацию nginx, добавляя следующий блок:

    location /targetfolder/pdf {
            auth_basic "Restricted Content";
            auth_basic_user_file /etc/nginx/.htpasswd;
    }

/targetfolder/pdf - это место, где находятся файлы, которые должны быть защищены паролем.

3) Затем я перезагружаюсь nginx: sudo service nginx restart.

Затем я просматриваю папку и запрашиваю учетные данные. После ввода правильных учетных данных я получаю сообщение об ошибке 403. Запрещено nginx.

Ошибка в error.log гласит:

2020/01/26 13:45:21 [ ошибка] 29853 # 0: * 3 индекс каталога "/ var / www // targetfolder / pdf /" запрещен, клиент: xx.xxx.xxx.xxx, сервер: example.com, запрос: "GET / targetfolder / pdf / HTTP / 1.1 ", хост:" example.com "

Что я делаю не так? Я уже пробовал разные решения, такие как различные местоположения для .htpasswd, установка index-files в nginx -configuration et c. Может ли это быть как-то связано с WordPress? Может быть, что-то идет не так при шифровании / дешифровании введенного пароля?

FWIW, nginx работает с пользователем root. команда ps aux | grep nginx возвращает.

root 29849 0,0 0,1 91836 3060? Сс 13:44 0:00 nginx: ведущий процесс / usr / sbin / nginx -g демон включен; master_process on;

1 Ответ

0 голосов
/ 26 января 2020

Может ответить на мой вопрос. Конфигурация в основном была правильной, однако следующая строка в error.log указала мою ошибку:

2020/01/26 14:56:13 [error] 30373 # 0: * 54 индекс каталога "/ targetfolder / pdf /" запрещен, клиент: 80.110.88.251, сервер: example.com, запрос: "GET / pdf / HTTP / 1.1", хост: "example.com"

Это означает, что по умолчанию nginx, по-видимому, не разрешает списки каталогов (что хорошо). Поэтому мне просто нужно было включить автоиндекс для моей целевой папки, что привело к следующей конфигурации сайта / местоположения:

    location /targetfolder/pdf {
            autoindex on; #added
            auth_basic "Restricted Content";
            auth_basic_user_file /etc/nginx/.htpasswd;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...