HoRain 云小助手:个人主页
⛺️生活的理想,就是为了理想的生活!
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
目录
⛳️ 推荐
一、通过 allow/deny 指令配置(HTTP 层)
1. 编辑 Nginx 配置文件
2. 规则优先级说明
3. 重载配置生效
二、通过 geo 模块动态管理(高级)
1. 在 http 块定义 IP 白名单组
2. 外部文件 /etc/nginx/whitelist.conf
三、白名单验证方法
1. 使用 curl 测试
2. 查看访问日志
四、常见问题排查
1. 白名单 IP 仍被拒绝
2. 配置未生效
五、安全增强建议
allow/deny
指令配置(HTTP 层)适用场景:精确控制特定路径或全局的 IP 访问权限。
找到对应的 server
或 location
块,添加规则:
server {
listen 80;
server_name example.com;
# 全局白名单配置
allow 192.168.1.100; # 允许单个 IP
allow 203.0.113.0/24; # 允许 CIDR 网段
deny all; # 拒绝其他所有 IP
location /admin {
# 路径级白名单(覆盖全局配置)
allow 10.0.0.5;
deny all;
}
# 其他配置...
}
allow
后 deny
。location
块内的规则会覆盖外层 server
块的配置。sudo nginx -t # 检查语法
sudo nginx -s reload # 平滑重载
geo
模块动态管理(高级)适用场景:需要集中管理大量 IP 或动态更新白名单。
http
块定义 IP 白名单组http {
geo $whitelist {
default 0;
192.168.1.100 1;
203.0.113.0/24 1;
# 可引入外部文件
include /etc/nginx/whitelist.conf;
}
server {
listen 80;
server_name example.com;
if ($whitelist = 0) {
return 403; # 拒绝非白名单 IP
}
# 其他配置...
}
}
/etc/nginx/whitelist.conf
# 每行一个 IP 或网段
10.0.0.5 1;
172.16.0.0/16 1;
curl
测试# 模拟非白名单 IP(使用代理或修改请求头)
curl -H "X-Forwarded-For: 1.2.3.4" http://example.com
# 预期返回 403 Forbidden
# 模拟白名单 IP
curl -H "X-Forwarded-For: 192.168.1.100" http://example.com
# 预期正常访问
tail -f /var/log/nginx/access.log
# 观察客户端 IP 是否被正确识别
set_real_ip_from
和 real_ip_header
。
set_real_ip_from 代理服务器IP;
real_ip_header X-Forwarded-For;
http
/server
/location
)。tail -f /var/log/nginx/error.log
iptables
/ufw
)。
sudo ufw allow from 192.168.1.100 to any port 80
ngx_http_geoip2_module
)实现动态 IP 验证。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!
如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!
Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!