Я перепробовал так много методов и получил много часов с этим. Я редактирую /etc/nginx/nginx.conf
и напишите эти строки.
location /home/user/domains/example.com/public_html/lockfolder/ {
auth_basic "Restricted";
auth_basic_user_file /home/user/domains/example.com/.htpasswd;
}
и я использую crypt(3)
шифрование для создания пароля с помощью команды mkpasswd
. Затем я проделал с данной процедурой user:encryptedpasswd
в .htpasswd
.
Но все работает не так, как было сказано. Дайте мне знать, если кто-нибудь знает, как я могу точно настроить конфигурацию для моей цели! Я также перезагружаю свой nginx с помощью /etc/init.d/nginx reload
В location /home/user/domains/example.com/public_html/lockfolder/
строка неверна, так как она использует путь к файловой системе, а location
работает с URI. Правильный конфиг будет выглядеть так
location /lockfolder/ {
auth_basic "Restricted";
auth_basic_user_file /path/to/htpassd;
}
Ожидается, что запросы будут ограничены http://www.example.com/lockfolder/something
.
Другая возможная ловушка - это другие местоположения, особенно более конкретные и / или заданные регулярными выражениями. Вы должны убедиться, что написанное вами местоположение действительно соответствует запросам, которые вы хотите сопоставить. Видеть http://nginx.org/r/location для документации по деталям сопоставления местоположения.
Попробуй это:
location /lockfolder {
auth_basic "Restricted";
auth_basic_user_file htpasswd;
}
Начиная с версии 0.6.7, путь auth_basic_user_file определяется относительно каталога файла конфигурации nginx nginx.conf. Если установлен Apache, вы можете создать файл паролей с помощью прилагаемой программы htpasswd.