40 lines
1.5 KiB
Markdown
40 lines
1.5 KiB
Markdown
# 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.
|
|
|
|
|