Nginx Allow/Deny и динамический IP адрес

И снова приветствую вас друзья. Сегодня я поделюсь с вами маленьким BASH скриптом который облегчает жизнь «ленивому» админу 🙂

Как вы поняли речь пойдет о таких директивах в Nginx как Allow/Deny 

В прошлой статье я поделился с вами скриптом для Apache. Ну а сейчас рассмотрим такой же скрипт только для Nginx

Так получилось что мне нужно было закрыть доступ к папке на сервере по IP адресу , как пример можно использовать PhPMyAdmin. В Nginx для этого есть возможность использования Allow/Deny

Пример .

Ну и собственно все работает как надо, но за маленьким исключением. Один из доверенных  «allow» IP адресов динамический это мой домашний роутер, ну и каждый раз заходить и менять на новый IP в конфиге не очень удобно.

Многие из вас знают о таких сервисах как dyndns и no-ip а так же duckdns.org итп,  которыe позволяют пользователям получить субдомен, который будет привязан к пользовательскому компьютеру/роутеру,  не имеющему статического IP-адреса.

Как и что рассказывать не буду, вся информация есть в Google.  Ну и собствеено мой роутер настроен на такой субдомен и мой IP адрес привязан к нему.

Собственно задача состоит в том что-бы автоматически узнать IP адрес домена и прописать его в соответствующее место в конфиге вебсервера и перезапустить его. Для этого и был написан  скрипт которым я хочу с вами поделится.

Едем дальше 🙂

Создаем файл nginx.sh и даем привилегии запуска chmod +x nginx.sh и копирум туда скрипт ниже .

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

Пример:

Не забудьте подправить myhost.noip.org на ваш домен, а в строчке

часть с | grep RBS#RBS dynamic IP < в конфигe , можете поменять на свой , это специальная метка для поиска нужной строки в конфиге.

Ну и ставим скрипт в крон, я поставил на запуск раз в час

Всем удачи и до новых встреч 🙂