У меня есть сайт 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;