# NGINX ALLOW DYNAMIC IP ## Configure nginx config files to edit IP based on domain name ### Requirements `dig` \ dig is most likely installed on your distro but incase it isn't install it first ### Usage First, get the script and make it executable: ```bash curl -O https://git.shihaam.dev/shihaam/sarmic/raw/branch/master/nginx-allow-dynamicip/nginx-allow-dynamicip.sh chmod +x nginx-allow-dynamicip.sh ``` Make sure your nginx config server block contain "#DYNAMIC" after the IP you want to change dynamically ```nginx #Block public access allow 1.1.1.1; #DYNAMIC deny all; ``` Excute the script as root (or with sudo) with 1st arugement for config file and 2nd arugemt with domain of the IP you want to allow \ `sudo ./nginx-allow-dynamicip.sh db-sarlinode.shihaam.dev home.shihaam.me` ### Automate with cron Run `crontab -e` as root as this script needs sudo. ```bash sudo crontab -e` ``` I have it configured to update once every hour like this ```bash 0 * * * * /home/shihaam/scripts/nginx-allow-dynamicip.sh freezer.shihaam.me home.shihaam.me ``` ### Notes It is important that your nginx config files are in `/etc/nginx/sites-available/` and symlinked to `/etc/nginx/sites-enabled/`,\ This is done by default on Debian and Ubuntu,I noticed this is not how it's configured by default on Arch Linux and CentOS, If you're using those you have bigger issues.