NGINX закрыть доступ к папке

Средствами NGINX ограничиваем доступ к ресурсам

В некоторых случаях возникает ситуация, когда необходимо ограничить доступ к определенным ресурсам. Возможно для админки сайта, либо для других ресурсов.

У меня необходимость ограничения доступа возникла в связи с установкой memcached и ограничения доступа в админку для у правления кешем phpMemcachedAdmin. Статья про установку phpMemcachedAdmin была немного ранее.

Ограничение доступа средствами Nginx

допустим админка у нас расположена в папочке memcache. Напишем локейшен с регуляркой  /memcache/ и поместим его в файл конфигурации nginx.

location ~* ^/memcache/.+\.php {
        #allow X.X.X.X; // можно так же ограничить доступ по ip
        #deny all;
        auth_basic "Hello, please login";
        auth_basic_user_file /var/www/<del>sitename</del>/www/memcache/.htpasswd;                             
        include         fastcgi_params;
        fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_pass    backend-<del>sitename</del>;
    }
<br>

при обращении к адресу с /memcached/... у нас будет появляться окошечко с просьбой ввести логин и пароль. Таким образом все php из /memcached/ пойдут через секцию с авторизацией, не помешав обработке статики.

Авторизация Nginx

auth_basic_user_file /var/www/sitename/www/memcache/.htpasswd;

Данная строчка в конфигурации говорит nginx о том, что файл с логином и паролем лежит по данному пути.

создаем файл .htpasswd, и вписываем туда пользователя и пароль в виде:

user:$apr1$k06d8hRG$.IbnVkV0B8IRVA1SUWkYm/

где у нас пользователь - user, а пароль в данном случае - 0000

Сгенерировать пароль можно средствами линукс, либо воспользоваться онлайн генератором

Вот и все. Достаточно просто и мы научились ограничивать доступ к подпапкам средствами nginx.


Комментарии