主要思路就是利用DDNS软件获取动态IP地址,然后定时修改nginx的IP地址白名单限制。
1、在用户端局域网路由器上创建DDNS服务
2、在ngixn上添加IP白名单策略,除白名单IP外,禁止其它任何IP访问
set $clientipfileurl "/usr/local/nginx/conf/ip_allow/$remote_addr";
if ( !-f $clientipfileurl) { return 401;}
3、通过crontab定时任务每分钟从DDNS获取一次公网IP,并写入ip_allow目录
#touch ip addr
*/1 * * * * touch /usr/local/nginx/conf/ip_allow/`host h3c2**.f3322.net|awk '{print$4}'`
这样用户端局域网的公网IP变更后,1分钟内ngixn就会自动更新允许访问的白名单,解决因动态IP带来的无法设置nginx访问白名单的问题。