Показать страницуИстория страницыСсылки сюдаCopy this pageExport to MarkdownODT преобразованиеНаверх Вы загрузили старую версию документа! Сохранив её, вы создадите новую текущую версию с этим содержимым. Медиафайлы====== Ограничение доступа средствами Nginx ====== Небольшая заметка о том, как средствами Nginx-а закрыть доступ к файлам/папке по паролю. В nginx-е это решение не менее элегантно, чем в apache, а может и еще лучше, кому как нравится. В конфигурационном файле, в папке, которую хотим закрыть надо только указать файл, где хранятся пароли. Вот два примера для закрытия папки с файлами: location ^~ /files/ { root /path/to/server; autoindex on; autoindex_exact_size off; auth_basic "Hello, please login"; auth_basic_user_file /usr/nginx/passwords; access_log /usr/nginx/logs/files.log download; } и админовской части c дополнительным ограничением по IP: location ^~ /admin/ { fastcgi_pass unix:/home/project/server.sock; include conf/fastcgi.conf; allow 11.11.0.0/16; allow 22.22.22.22; deny all; auth_basic "Hello, Admin, please login"; auth_basic_user_file /usr/nginx/adminpassword; access_log /usr/nginx/logs/admin.log main; } Добавить пользователя можно с помощью стандартной утилиты от apache: htpasswd -b passwords NewUser NewPassword * -c необходим только для создания нового файла * -b В файле запись с зашифрованным паролем имеет вид: NewUser:P47ghZ4kloG78: Your Can Comment Here ====== Генерация файла пароля ====== ==== PHP ==== php -r 'echo "user_name:" . crypt("your_password", "salt");' > ./httpd_passwd ==== Python ==== python -c 'import crypt; print "user_name:" + crypt.crypt("your_password", "salt")' > ./httpd_passwd ==== Perl ===== perl -le 'print "user_name:" . crypt("password", "salt")' > ./httpd_passwd ====== Генерация хеша пароля ====== ===== Apache ===== htpasswd -nd seriy New password: Re-type new password: seriy:4lQ0JcanrGr9E ==== php ==== php -r 'echo crypt("your_password", "salt");' ==== python ==== python -c 'import crypt; print crypt.crypt("your_password", "salt")' ==== perl ==== perl -le 'print crypt("password", "salt")'СохранитьПросмотрРазличияОтменить Сводка изменений Примечание: редактируя эту страницу, вы соглашаетесь на использование своего вклада на условиях следующей лицензии: CC0 1.0 Universal