FastNetMon

Friday 13 June 2008

Nginx + HTTP Basic Authentication

Ну тема довольно простая и почти полностью описана в документации (http://sysoev.ru/nginx/docs/http/ngx_http_auth_basic_module.html), но все же опишу некоторые моменты.

Для начала открываем файл nginx.conf и ищем там следующие строки:

location / {
root   html;
index  index.html index.htm;
}

И заменяем их на следующее:
location / {
auth_basic            "closed site";
auth_basic_user_file  htpasswd;

root   html;
index  index.html index.htm;
}

Рестартанув Нджинкс, можно увидеть, что при открытии сайта выскакивает окошечко требующее авторизацию. Теперь нам нужно создать файл с логинами и паролями пользователей, имеющих доступ к данной страничке.

Файл паролей положим в папку conf -- conf/htpasswd, его формат таков:
# комментарий
имя1:пароль1
имя2:пароль2:комментарий
имя3:пароль3
Пароли генерируются функцией crypt, также для их создания можно воспользоваться утилитой от веб сервера Apache -- htpasswd, ей мы и воспользуемся.
sudo htpasswd -cbd htpasswd nrg 12345
"-d" -- выбираем криптофункцию "crypt"
"-b" -- указываем считывание имени файла с паролями с командной строки
"-c" -- указываем создать новый файл
htpasswd -- имя вновь создаваемого файла
nrg -- имя добавляемого туда пользователя
12345 -- пароль пользователя

В итоге получаем файлик следующего содержания:
nrg:G8XDed1YWlwlM
И рестартим Нджинкс, после этого при попытке открыть главную страницу сайта должна выскакивать страница авторизации :)

Хм, а вот интересно, можно ли подружить Nginx c PAM или LDAP? А-то держать полтора десятка баз пользователей никакого удовольствия, а так можно было бы все сложить в одну базу. Если у кого есть мысли на этот счет, буду благодарен, если оставите их в комментах (:

2 comments :

  1. Можно, есть ngx_http_auth_pam_module:

    http://web.iti.upv.es/~sto/nginx/ngx_http_auth_pam_module-1.1.tar.gz

    ReplyDelete

Note: only a member of this blog may post a comment.