Nginx+puma: защита сайта паролем

В отличии от Apache, в nginx не используется .htaccess файл. Но защитить паролем сайт в Nginx можно с помощью модуля HttpAuthBasic.

Для того, чтобы защитить какую-либо директорию с помощью пароля, вам нужно прописать следующие директивы в конфигурационном файле Nginx вашего сайта:

/etc/nginx/sites-enabled/mysite

location @puma {



auth_basic Unauthorized,

auth_basic_user_file /var/www/mysite.com/.htpasswd,

}

Это защитит паролем весь сайт, а также все вложенные директории.

Директивой auth_basic_user_file вы можете указать файл с паролем.

Файл htpasswd должен содержать имена пользователей и их пароли. При этом пароли должны быть закодированы с помощью функции crypt(3).

Создаем файл с пользователями:

htpasswd -c -d /var/www/mysite.com/.htpasswd USERNAME

Для добавления последующих:

htpasswd -d /var/www/mysite.com/.htpasswd NEWUSERNAME

Если система жалуется на отсутствие команды htpasswd, установите apache2-utils:

apt-get install apache2-utils