📅  最后修改于: 2023-12-03 15:17:52.480000             🧑  作者: Mango
在某些情况下,你可能希望只允许一个 IP 访问你的 Nginx 服务器。这可以通过 Nginx 的访问控制列表(ACL)配置实现。
/etc/nginx/nginx.conf
)。http
部分添加以下内容:http {
# 只允许 IP 为 192.168.1.100 的主机访问
geo $single_ip {
default 0;
192.168.1.100 1;
}
server {
listen 80;
server_name example.com;
# 拒绝除 192.168.1.100 以外的所有主机访问
if ($single_ip = 0) {
return 403;
}
# 允许 192.168.1.100 的主机访问
location / {
# your configuration ...
}
}
}
这样,除了 IP 为 192.168.1.100
的主机,其他主机访问该服务器时会返回一个 403 Forbidden
错误。
geo
指令定义了一个名为 $single_ip
的变量,变量值为与客户端 IP 匹配的值。在默认情况下,变量值为 0。server
块中,通过判断 $single_ip
变量的值,如果值为 0,则返回 403 Forbidden
错误,否则允许访问。location
指令用于配置具体的请求路由。通过以上配置,我们可以成功限制只允许一个 IP 访问 Nginx 服务器。如果你希望允许多个 IP 访问,可以通过在 geo
指令中添加多个 IP 地址实现。