当前位置: 首页 > news >正文

Nginx访问限制学习笔记

文章目录

  • Nginx 访问限制配置清单
    • 1. 基于 IP 限制访问
    • 2. 基于 User-Agent 限制(防爬虫)
    • 3. 基于 URL 路径限制(保护敏感文件)
    • 4. 请求频率限制(防 DDoS / 暴力请求)
      • 4.1 限制并发连接数
      • 4.2 限制请求速率
    • 5. 访问认证限制(Basic Auth)
    • 6. 防盗链(基于 Referer)
    • 7. 阻止特定请求方法
    • 8. 限制上传文件大小
    • 9. 配合防火墙(Linux 层面)
  • 总结

Nginx 访问限制配置清单

1. 基于 IP 限制访问

location / {# 允许指定 IP 段allow 192.168.1.100;allow 10.0.0.0/24;# 拒绝所有其他 IPdeny all;
}

应用:只允许内网访问后台管理系统。


2. 基于 User-Agent 限制(防爬虫)

if ($http_user_agent ~* "curl|wget|python") {return 403;
}

$http_user_agent是请求头中的客户端标识

~*表示不区分大小写的正则匹配

应用:屏蔽脚本工具批量请求。


3. 基于 URL 路径限制(保护敏感文件)

# 禁止访问版本库目录	.git、.svn
location ~ /\.git {deny all;
}
#	匹配 URL 中带有 /.git 的路径location ~ /\.svn {deny all;
}

应用:防止代码泄露。


4. 请求频率限制(防 DDoS / 暴力请求)

4.1 限制并发连接数

使用 limit_connlimit_req 模块限制请求速率,防止 DDoS 或暴力请求

http {limit_conn_zone $binary_remote_addr zone=addr:10m;server {location / {limit_conn addr 1;   # 每个 IP 最多 1 个并发连接}}
}

4.2 限制请求速率

http {limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;server {location /api/ {limit_req zone=one burst=5 nodelay;}}
}
#	burst=5:允许突发5个请求
#	nodelay:超出的请求立即返回503,不排队

应用:保护接口 API,防止刷接口。


5. 访问认证限制(Basic Auth)

  1. 生成密码文件:
htpasswd -c /etc/nginx/.htpasswd user1
  1. Nginx 配置:
location /admin {auth_basic "Restricted Area";auth_basic_user_file /etc/nginx/.htpasswd;
}

应用:后台管理加密码保护。


6. 防盗链(基于 Referer)

location /images/ {valid_referers none blocked *.example.com;if ($invalid_referer) {return 403;}
}

应用:防止图片、视频被外站盗链。


7. 阻止特定请求方法

if ($request_method !~ ^(GET|POST)$) {return 405;
}

应用:禁止 PUT/DELETE 等危险请求。


8. 限制上传文件大小

server {client_max_body_size 10m;  # 限制上传文件最大 10MB
}

应用:防止大文件拖垮服务器。


9. 配合防火墙(Linux 层面)

Nginx 配置只是应用层限制,更强的控制可以配合 Linux 防火墙 使用

# UFW
sudo ufw deny from 192.168.1.200# iptables
sudo iptables -A INPUT -s 192.168.1.200 -j DROP

应用:更底层的访问限制。


总结

Nginx 常见访问限制手段: - IP 限制:allow/deny\

  • User-Agent 限制:防爬虫\
  • 路径限制:保护敏感目录\
  • 限流:limit_conn / limit_req 防 DDoS\
  • 认证限制:Basic Auth\
  • 防盗链:Referer 检测\
  • 请求方法限制:只允许 GET/POST\
  • 上传限制:限制文件大小\
  • 结合防火墙:更强的防御
http://www.dtcms.com/a/351076.html

相关文章:

  • 智慧AI消防通道占用检测在危险区域的应用
  • 数据结构青铜到王者第五话---LinkedList与链表(2)
  • 懂支持向量机(SVM):从原理到实战拆解
  • 算法-每日一题(DAY15)用队列实现栈
  • SQLBot 智能问数、数据洞察逻辑拆解
  • 【GM3568JHF】FPGA+ARM异构开发板 应用编辑及源码下载
  • 零基础也能照做的WordPress网站安全漏洞修复 + 高级优化保姆级教程。
  • 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)第七章知识点问答(22题)
  • Netty源码—性能优化和设计模式
  • HarmonyOS 中的 @Prop 装饰器:深入理解单向数据传递
  • 网站如何被搜索引擎收录(Google、Bing、百度等)
  • [特殊字符]Windows 资源监视器使用指南:查端口以后不用敲命令了
  • AI解决生活小事系列——用AI给我的电脑做一次“深度体检”
  • 【LeetCode 热题 100】31. 下一个排列
  • Python之matplotlib 基础五:绘制饼状统计图
  • 有鹿机器人:为城市描绘清洁新图景的智能使者
  • Linux IO模型:阻塞IO、非阻塞IO、IO多路复用、信号驱动IO、异步IO
  • 绿算技术解密金融科技安全:高性能计算与存储驱动金融防火墙新时代
  • 系统安全难题咋解?低代码给出新思路
  • 打破技术壁垒的先进制造框架的智慧工业开源了
  • 医疗巡诊车5G专网路由器应用
  • 360智脑开源优化排序模型——360Zhinao-1.8B-Reranking本地部署教程,提升检索质量,减少大模型“幻觉”现象
  • Windows编程日志4——消息队列和消息处理
  • Hive的核心架构
  • Go语言模块开发
  • 从线到机:AI 与多模态交互如何重塑 B 端与 App 界面设计
  • S-HUB实现泛微E9与飞书对接
  • Redisson详解:高性能redis客户端,超详细!
  • MyBatis 初识:框架定位与核心原理——SQL 自由掌控的艺术
  • 【资讯】国内免费/开源大模型对比及获得途径总结