nginx:使用带有域名的 geo 模块代替 IP

nginx:使用带有域名的 geo 模块代替 IP

我使用 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 查找,随后您可以根据传入的主机名允许/拒绝。

相关内容