sudo sh -c "echo -n 'sammy:' >> /etc/nginx/.htpasswd"
Затем добавьте зашифрованную запись пароля для имени пользователя, набрав:
sudo sh -c "openssl passwd -apr1 >> /etc/nginx/.htpasswd"
Вы можете повторить этот процесс для дополнительных имен пользователей. Вы можете увидеть, как имена пользователей и зашифрованные пароли хранятся в файле, набрав:
cat /etc/nginx/.htpasswd
Output1.2) Создаем файл с паролем использую Apache Utilities
sammy:$apr1$wI1/T0nB$jEKuTJHkTOOWkopnXqC1d1
Хотя OpenSSL может шифровать пароли для аутентификации Nginx, многим пользователям проще использовать целевую утилиту. Утилита htpasswd, найденная в пакете apache2-utils, хорошо выполняет эту функцию.
Установите пакет apache2-utils на свой сервер, введя:
sudo apt-get update
sudo apt-get install apache2-utils
Теперь у вас есть доступ к команде htpasswd. Мы можем использовать это для создания файла паролей, который Nginx может использовать для аутентификации пользователей. Мы создадим для этой цели скрытый файл под названием .htpasswd в нашем каталоге конфигурации / etc / nginx.
В первый раз, когда мы используем эту утилиту, нам нужно добавить параметр -c для создания указанного файла. Мы указываем имя пользователя (sammy в этом примере) в конце команды для создания новой записи в файле:
sudo htpasswd -c /etc/nginx/.htpasswd sammy
Вам будет предложено указать и подтвердить пароль для пользователя. Оставьте аргумент -c для любых дополнительных пользователей, которых вы хотите добавить:
sudo htpasswd /etc/nginx/.htpasswd another_user2) Конфигурирование nginx авторизации
sudo nano /etc/nginx/sites-enabled/default
Внутри, если комментарии разделены, файл должен выглядеть примерно так:
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
}
}
Чтобы настроить аутентификацию, вам нужно решить, какой контекст будет ограничен. Среди других вариантов Nginx позволяет устанавливать ограничения на уровне сервера или в определенном месте. В нашем примере мы ограничим весь корневой каталог документа блоком местоположения, но вы можете изменить этот список только для таргетинга на определенный каталог в веб-пространстве:server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.html index.htm;
server_name localhost;
location / {
try_files $uri $uri/ =404;
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}
}
sudo service nginx restart
< Directory "/var/www/html/secret">
AuthType Basic
AuthName "Private Area"
AuthUserFile /var/www/html/site/.htpasswd
Require valid-user
< /Directory>
AuthType Basic AuthName "Private Area" AuthUserFile /var/www/html/secret/.htpasswd Require user administrator tolik
https://www.digitalocean.com/community/tutorials/how-to-set-up-password-authentication-with-nginx-on-ubuntu-14-04
https://serverfault.com/questions/334755/nginx-php-fpm-basic-auth
http://unixa.ru/web/autentifikatsiya-sredstvami-apache-web-server.html