HoRain云--Nginx配置IP白名单全攻略
Nginx配置IP白名单指南 本文详细介绍了在Nginx中配置IP白名单的方法,通过allow和deny指令实现访问控制,适用于保护管理后台、限制API访问等场景。配置可在全局(http块)、虚拟主机(server块)或特定路径(location块)生效,支持CIDR表示法和外部文件引入。关键原则是先allow后deny all,确保仅白名单IP可访问。配置后需执行nginx -t校验语法并重载配

🎬 HoRain云小助手:个人主页
🔥 个人专栏: 《Linux 系列教程》《c语言教程》
⛺️生活的理想,就是为了理想的生活!
⛳️ 推荐
前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。
专栏介绍
|
专栏名称 |
专栏介绍 |
|
本专栏主要撰写C干货内容和编程技巧,让大家从底层了解C,把更多的知识由抽象到简单通俗易懂。 |
|
|
本专栏主要是注重从底层来给大家一步步剖析网络协议的奥秘,一起解密网络协议在运行中协议的基本运行机制! |
|
|
全面深入解析 docker 容器,从基础到进阶,涵盖原理、操作、实践案例,助您精通 docker。 |
|
|
本专栏主要撰写Linux干货内容,从基础到进阶,知识由抽象到简单通俗易懂,帮你从新手小白到扫地僧。 |
|
|
本专栏着重撰写Python相关的干货内容与编程技巧,助力大家从底层去认识Python,将更多复杂的知识由抽象转化为简单易懂的内容。 |
|
|
本专栏主要是发布一些考试和练习题库(涵盖软考、HCIE、HRCE、CCNA等) |
目录

Nginx配置IP白名单详细指南
IP白名单是一种基于IP地址的访问控制策略,通过只允许列表中指定的IP地址访问资源,从而拒绝所有其他未在列表中的IP。这在以下场景非常有用:
- 保护管理后台:只有公司内部或特定管理员的IP才能访问后台管理系统
- 限制API访问:仅允许授权的客户端或合作伙伴IP调用敏感API
- 内部应用访问:确保只有内网IP才能访问内部部署的应用
- 开发/测试环境:限制只有开发团队IP才能访问非生产环境
配置方法:使用allow和deny指令
Nginx使用allow和deny指令实现IP白名单,这些指令可以在三个层级配置:
- http块(全局):对所有虚拟主机生效
- server块(虚拟主机):对特定虚拟主机生效
- location块(特定路径):对特定路径生效
重要原则:Nginx按配置顺序处理规则,一旦匹配到规则就停止处理。建议先配置
allow,最后配置deny all;。
配置示例
1. 全局IP白名单(http块)
http {
# 全局IP白名单配置
allow 192.168.1.0/24; # 允许内网192.168.1.x网段
allow 203.0.113.50; # 允许特定IP地址
allow 127.0.0.1; # 允许本地访问
deny all; # 拒绝所有其他IP
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
2. 虚拟主机IP白名单(server块)
server {
listen 80;
server_name localhost;
# 白名单配置
allow 192.168.3.7; # 允许单个IP
allow 192.168.3.9/32; # 允许一个网段(等同于192.168.3.9)
deny all; # 拒绝所有其他IP
location / {
root html;
index index.html index.htm;
}
}
3. 特定路径IP白名单(location块)
location /secret/ {
allow 192.168.1.0/24; # 仅允许192.168.1.x网段访问
deny all;
}
4. 通过外部文件配置白名单
location / {
include /etc/nginx/whitelist.conf; # 从外部文件读取白名单
deny all;
}
在/etc/nginx/whitelist.conf中配置:
allow 10.1.1.10;
allow 10.1.1.11;
配置注意事项
- 指令顺序:Nginx按顺序检查规则,先
allow后deny,最后deny all。 - CIDR表示法:使用
192.168.1.0/24表示一个IP地址段。 - 多个规则:可以添加多个
allow规则,Nginx会依次检查。 - IPv6支持:Nginx也支持IPv6地址,如
allow 2001:0db8::/32;。
配置生效步骤
- 编辑Nginx配置文件(通常位于
/etc/nginx/nginx.conf或/etc/nginx/conf.d/目录下) - 添加或修改白名单配置
- 检查配置语法:
nginx -t - 重载配置:
nginx -s reload
为什么使用白名单而不是黑名单?
- 安全性:白名单只允许指定IP,比黑名单更安全(黑名单可能被绕过)
- 明确性:白名单明确指定允许的IP,避免"默认允许"的风险
- 简洁性:配置更简单,只需列出允许的IP,而不是需要排除的IP
通过以上配置,只有白名单中的IP地址才能访问指定的资源,其他IP将收到403 Forbidden错误。
配置完成后,访问测试:如果IP不在白名单中,将看到403错误页面,日志中会记录access forbidden by rule。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄
💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍
🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙
更多推荐

所有评论(0)