# 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\ Something like the following: ```nginx #Block public access allow 1.1.1.1; #DYNAMIC deny all; ``` Excute the script as root (or with sudo) with 1st argument for config file and 2nd argument 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 to edit nginx config file and restart nginx ```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. Tested and verifed to work on Debian Linux.