Блог Синявского
  • Разделы
  • Метки
  • Все статьи

nginx auth by http password or ip

1

Программа для шифрования пароля

Создание файла с паролями осуществляется с помощью утилиты passwd которая входит в состав пакета apache2-utils В файле с паролями пароли хранятся в зашифрованном виде в формате login:hash, где для создания hash используется модифицированный алгоритм MD5.

Пример файла:

gygtest:eCcls0kn3MEXs

Устанавливаем пакет:

# apt-get install apache2-utils

Создаем пароль

Обычно для хранения паролей использую специальную папку

# mkdir /etc/nginx/passwd
htpasswd -с /etc/nginx/passwd/hostname.htpasswd username

ключ -c создает новый файл

Меняем конфигурацию nginx

В location / определенного виртуального хоста hostname изменим конфигурацию следующих модулей:

  1. ngx_http_access_module
  2. ngx_http_auth_basic_module

Указываем директиву satisfy значениe any - разрешает доступ, если хотя бы один из модулей ngx_http_access_module, ngx_http_auth_basic_module или ngx_http_auth_request_module разрешают доступ.

# nano /etc/nginx/sites-available/<hostname>

...
location / {
    ...

    satisfy any;

    allow 10.0.0.0/8;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;

    auth_basic "Restricted zone";
    auth_basic_user_file /etc/nginx/passwd/hostname.htpasswd;
}
...

Проверяем конфигурацию nginx:

service nginx configtest

Перезагружаем сервер:

server nginx restart


  • ← сюда
  • туда →

comments powered by Disqus

Опубликовано

26.04.2014

Обновление

17.07.2017

Категории

nginx

Тэги

  • nginx 11

Всегда на связи

  • Блог Синявского - Ничего не переносить на завтра, это тоже проблема с прокастинацией?
  • © Алексей Синявский, по лицензии CC BY-SA если не указано иное.
  • С использованием Pelican. Тема: Elegant от Talha Mansoor