ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Защита каталогов паролем в Nginx

Защита каталогов паролем в Nginx

Первое, что вам нужно будет сделать, это создать файл с именем .htpasswd (он должен быть назван именно так). Следующая команда создает новый файл .htpasswd и сохраняет запись в этом для пользователя AndreyEx.

htpasswd -bc /var/www/yourdomain.ru/.htpasswd andreyex password

Для создания другого пользователя:

htpasswd -b /var/www/yourdomain.ru/.htpasswd destroyer password

Если вы получаете ошибку “команда не найдена”, то у вас, вероятно, не установлен apache2-utils.
.htpasswd должен быть размещен над вашем корневом каталоге или в другом каталоге, который надо сделать недоступным.

Файл конфигурации для защиты вашего сайта, добавив следующие строки кода внутри серверного блока:

location ^~ /secretdirectory/ {
    auth_basic            "Restricted";
    auth_basic_user_file  /var/www/yourdomain.ru/.htpasswd;

    location ~ \.php {
        fastcgi_index index.php;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        include /etc/nginx/fastcgi_params;
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_param SCRIPT_FILENAME \$document_root\$fastcgi_script_name;
    }
}

Перезагрузите Nginx, чтобы изменения конфигурации вступили в силу

/etc/init.d/nginx restart

Наконец проверьте, все ли работает правильно. Перейти к http://yourdomain.ru/secretdirectory/, должно быть предложено ввести имя пользователя и пароль.

Exit mobile version