![nginx:使用带有域名的 geo 模块代替 IP](https://linux22.com/image/753496/nginx%EF%BC%9A%E4%BD%BF%E7%94%A8%E5%B8%A6%E6%9C%89%E5%9F%9F%E5%90%8D%E7%9A%84%20geo%20%E6%A8%A1%E5%9D%97%E4%BB%A3%E6%9B%BF%20IP.png)
我使用 nginx 来托管 wordpress。当然,我希望保护 wp-admin 和 wp-login.php 页面,以便只有预授权的服务器才能访问它们。
在我的网站中,我定义了允许的 IP。然后使用变量 $wpadmin 来允许/禁止 wp-admin 页面:
geo $wpadmin {
default 0;
1.2.3.4 1;
}
现在我的问题是 IP“1.2.3.4”是动态的,每次更改时我都必须更新配置。我想使用域名,例如动态 DNS“example.no-ip.com”
任何有关如何解析主机名并使用结果的帮助都将不胜感激。
我可以写一个小脚本,每隔 x 分钟检查一次我的 DNS,如果需要,用新 IP 覆盖配置文件并重新加载 nginx 配置。但是,这并不优雅,需要注意脚本所有权/权限以确保安全。
答案1
这可以通过rdns
模块。
它可以对远程 IP 进行反向 DNS 查找,随后您可以根据传入的主机名允许/拒绝。