发布时间:2026/6/25 12:59:59
Nginx限流配置实战:保护你的个人项目
Nginx限流配置实战保护你的个人项目前段时间我的个人博客上线后有一天突然访问特别慢一看服务器日志好家伙——被爬虫疯狂扫接口一分钟请求了几千次。作为一个99元低配ECS哪经得起这么折腾。赶紧把Nginx限流配上了问题解决。今天就把Nginx限流的几种常用配置分享出来希望对你有帮助。一、为什么要限流个人项目上线后你可能会遇到这些情况爬虫疯狂抓取把你的文章接口当API调恶意刷接口有人用脚本扫你的登录接口瞬时高并发文章突然火了大量用户同时访问资源耗尽低配ECS扛不住大量并发请求限流不是为了让用户用不了而是保护你的服务器不被拖垮。合理的限流配置能让有限的资源服务好真正的用户。二、Nginx限流基础配置Nginx限流主要靠两个模块limit_req请求频率限制和limit_conn并发连接限制。2.1 限制请求频率# 在 http 块定义限流区域 http { # 定义一个名为 mylimit 的限流区域 # 10m 表示存储10MB的客户端IP信息 # rate1r/s 表示每秒只允许1个请求 limit_req_zone $binary_remote_addr zonemylimit:10m rate1r/s; server { location /api/ { # 应用限流 # burst5 表示允许超过限制的5个请求排队 # nodelay 表示排队请求不延迟处理 limit_req zonemylimit burst5 nodelay; proxy_pass http://localhost:8083; } } }参数说明参数作用rate1r/s每秒1个请求超过的会被拒绝burst5允许突发5个请求排队nodelay排队的请求不延迟处理10m存储10MB的IP信息够存几万个IP了2.2 限制并发连接数http { # 定义连接限制区域 limit_conn_zone $binary_remote_addr zoneconnlimit:10m; server { location /api/ { # 每个IP最多10个并发连接 limit_conn connlimit 10; # 超时的请求断开 limit_conn_status 503; } } }三、实际场景配置场景1保护文章接口博客的文章列表和详情接口是爬虫最喜欢抓的http { # 文章接口限流每秒2个请求 limit_req_zone $binary_remote_addr zonearticles:10m rate2r/s; server { location ~ ^/api/posts { limit_req zonearticles burst10 nodelay; proxy_pass http://localhost:8083; } } }场景2保护登录接口登录接口更要严格限流防止暴力破解http { # 登录接口限流每分钟5个请求 limit_req_zone $binary_remote_addr zonelogin:10m rate5r/m; server { location /api/auth/login { limit_req zonelogin burst3 nodelay; # 返回429状态码 limit_req_status 429; proxy_pass http://localhost:8083; } } }场景3限制某个目录的下载如果你的网站有文件下载功能http { limit_conn_zone $binary_remote_addr zonedownload:10m; server { location /download/ { # 每个IP同时只能下载1个文件 limit_conn download 1; # 限制下载速度为 500KB/s limit_rate 500k; } } }四、白名单配置有时候需要给特定IP比如你自己放行http { # 创建一个变量默认为空 geo $limited { default 1; # 你自己的IP不限流 你的服务器IP 0; 你的家庭宽带IP 0; } # 只在 $limited1 时限流 limit_req_zone $binary_remote_addr zoneapi:10m rate1r/s; server { location /api/ { if ($limited) { limit_req zoneapi burst5 nodelay; } proxy_pass http://localhost:8083; } } }五、限流后的友好提示当用户被限流时Nginx默认返回503但你可以自定义返回内容让体验更好server { # 自定义限流返回 error_page 429 /429.html; location /429.html { root /usr/share/nginx/html; internal; } # 或者返回JSON格式 error_page 429 rate_limit_json; location rate_limit_json { default_type application/json; return 200 {code:429,message:请求太频繁请稍后再试}; } }六、验证限流效果配置完后用 curl 测试一下# 快速发送10个请求看有几个被限流foriin$(seq110);docurl-s-o/dev/null-w%{http_code}\nhttp://你的域名/api/postsdone正常情况下你会看到一部分返回200一部分返回429被限流了。七、总结Nginx限流是保护个人项目最简单有效的手段之一配置起来也就几行代码但效果立竿见影。我的云深不知处博客配置了限流之后再也没被爬虫打趴过。如果你也把个人项目部署在某云ECS上建议第一时间配上限流。如果你还没有服务器可以看看某云的低至9.9元ECS活动买个低配的先练手。新用户还有85折首购优惠几十块钱就能跑一年个人项目够用了。如果你还没有服务器或者其它个人开发产品点击「独立开发者的省钱攻略」获取更多福利优惠。关于作者无羡独立开发者专注AI应用开发。 分类全栈开发 关注我获取更多技术分享 个人博客云深不知处 独立开发省钱攻略查看详情 体验我的AI产品一纸云深如果这篇文章对你有帮助欢迎点赞、收藏、关注你的支持是我持续创作的动力点击「阅读原文」查看我的独立开发笔记 点击查看我的个人介绍 点击查看我的小红书主页

相关新闻

FFmpegGUI终极指南:如何用可视化界面轻松处理视频音频文件
2026/6/25 12:59:59

FFmpegGUI终极指南:如何用可视化界面轻松处理视频音频文件

FFmpegGUI终极指南:如何用可视化界面轻松处理视频音频文件 【免费下载链接】ffmpegGUI ffmpeg GUI 项目地址: https://gitcode.com/gh_mirrors/ff/ffmpegGUI 如果你曾经因为FFmpeg复杂的命令行参数而头疼,或者因为视频转换软件功能有限而感到沮丧…

阅读更多
【AI技术实战】企业级AI Agent平台搭建指南:从小鹏汽车“灵犀“看Agentic AI落地实践
2026/6/25 12:59:59

【AI技术实战】企业级AI Agent平台搭建指南:从小鹏汽车“灵犀“看Agentic AI落地实践

前言"效率,不等于效能。" 这是小鹏汽车在AI转型过程中悟出的一句话,也是当前众多企业在部署AI Agent时面临的共同困境。 2026年6月,在亚马逊云科技中国峰会上,小鹏集团AI/Data Platform负责人何瑞邦分享了一组令人震撼的…

阅读更多
ai高效使用方法教程
2026/6/25 11:59:59

ai高效使用方法教程

本文提供一套清晰的AI使用路线图,通过转变几个关键思维,帮助你获得更精准、更有深度的回答。所有技巧均不依赖特定平台,适用于ChatGPT、DeepSeek、Claude等主流生成式AI。一、理解AI的本质生成式AI并不真正理解人类语言,而是通过概…

阅读更多
Space Thumbnails完整指南:让Windows资源管理器智能预览3D模型文件
2026/6/25 14:59:59

Space Thumbnails完整指南:让Windows资源管理器智能预览3D模型文件

Space Thumbnails完整指南:让Windows资源管理器智能预览3D模型文件 【免费下载链接】space-thumbnails Generates preview thumbnails for 3D model files. Provide a Windows Explorer extensions that adds preview thumbnails for 3D model files. 项目地址: h…

阅读更多
2026杭州中考择校攻略:200-300分考生,还有哪些靠谱出路?
2026/6/25 14:59:59

2026杭州中考择校攻略:200-300分考生,还有哪些靠谱出路?

各位杭州的中考家长大家好: 中考出分后,分数在200-300分区间的家庭,往往最纠结——够不上优质普高,又不想随便选个中职混日子,担心孩子浪费时间、毕业没出路。 今天就结合杭州本地的升学政策,把低分考生的3…

阅读更多
RAG实战指南:从原理到生产级部署的硬核经验
2026/6/25 14:59:59

RAG实战指南:从原理到生产级部署的硬核经验

1. 项目概述:当大模型不再“背完百科就上岗”,而是学会边查边答你有没有试过让一个刚训练完的大语言模型回答“昨天上海地铁14号线早高峰的延误情况”?它大概率会一本正经地胡说八道,编出个“因信号系统升级临时调整运行图”之类听…

阅读更多
扩散模型六种工业级可控性控制方法实战指南
2026/6/25 14:59:59

扩散模型六种工业级可控性控制方法实战指南

1. 项目概述:为什么“控制”才是扩散模型落地的生死线 你有没有试过用Stable Diffusion生成一张“穿蓝衬衫、站在咖啡馆窗边、侧脸微笑、柔焦背景”的图?输入提示词写得密密麻麻,可结果不是衬衫变绿,就是人突然多出一只手&#xf…

阅读更多
APP逆向入门:抓包与反编译工具环境搭建实战指南
2026/6/25 14:59:59

APP逆向入门:抓包与反编译工具环境搭建实战指南

1. 项目概述:从“抓”到“看”的逆向入门实战刚入行那会儿,我总觉得APP逆向是个高深莫测的黑客技能,离日常开发很远。直到有一次,自家公司的APP在某个特定网络环境下出现数据异常,前端和后端扯皮半天,最后靠…

阅读更多
Nacos安全加固实战:使用BCrypt加密修改默认账号密码
2026/6/25 13:59:59

Nacos安全加固实战:使用BCrypt加密修改默认账号密码

1. 项目概述:为什么Nacos账号密码管理如此重要?在微服务架构的日常运维中,Nacos作为服务发现和配置管理的核心组件,其自身的安全性往往是我们最容易忽视的一环。很多开发者在本地测试时,为了方便,直接使用默…

阅读更多
嵌入式语音编解码实战:G.726 ADPCM库集成与优化指南
2026/6/25 12:25:54

嵌入式语音编解码实战:G.726 ADPCM库集成与优化指南

1. 项目概述与G.726 ADPCM技术背景在嵌入式语音处理领域,带宽和存储资源往往是寸土寸金的。如果你做过对讲机、VoIP网关或者早期的数字录音设备,一定对如何在有限的比特率下保住语音可懂度这件事深有感触。我当年接手一个车载调度系统的项目,…

阅读更多
ITU656格式化器寄存器配置实战:VBI数据处理与VCR特技播放兼容性
2026/6/24 9:40:21

ITU656格式化器寄存器配置实战:VBI数据处理与VCR特技播放兼容性

1. 项目概述与核心挑战在数字视频处理领域,将原始的视频数据、同步时序以及各种辅助信息打包成一个标准、稳定的串行数据流,是确保设备间互联互通的基础。ITU-R BT.656标准(常简称为ITU656)正是为此而生的一套“交通规则”。它定义…

阅读更多
嵌入式GUI开发实战:emWin环境搭建、配置优化与性能调优指南
2026/6/24 16:06:27

嵌入式GUI开发实战:emWin环境搭建、配置优化与性能调优指南

1. 项目概述与emWin核心价值解析在嵌入式系统开发领域,人机交互(HMI)的设计正从简单的LED指示灯和按键,快速向全彩图形化界面演进。无论是智能家电上的触摸屏、工业PLC的操作面板,还是医疗设备的参数显示,一…

阅读更多
Redis容器重启循环问题排查与数据持久化完整指南
2026/6/25 11:59:59

Redis容器重启循环问题排查与数据持久化完整指南

一、问题背景在微服务和云原生开发中,Redis作为高性能缓存数据库被广泛使用。许多开发者会通过Docker部署Redis,并配合Spring Boot应用进行开发。然而,容器运行过程中难免遇到意外故障,例如容器状态异常、端口冲突、数据丢失等。本…

阅读更多
化学机器学习实战:从分子特征到可部署API的七步炼金术
2026/6/25 11:59:59

化学机器学习实战:从分子特征到可部署API的七步炼金术

1. 这不是“AI画分子图”——化学家正在用机器学习重写实验手册“Machine Learning in Chemistry”这个标题听起来像学术会议上的一个分论坛名称,但如果你真去翻看最近五年《Nature Chemistry》《Journal of Chemical Information and Modeling》的高被引论文&#…

阅读更多
如何快速上手Windows 12网页版:面向新手的终极在线体验指南
2026/6/25 11:59:59

如何快速上手Windows 12网页版:面向新手的终极在线体验指南

如何快速上手Windows 12网页版:面向新手的终极在线体验指南 【免费下载链接】win12 Windows 12 网页版,在线体验 点击下面的链接在线体验 项目地址: https://gitcode.com/gh_mirrors/wi/win12 Windows 12网页版在线体验为你提供了一种革命性的操作…

阅读更多
GIT修改用户名
2026/6/24 16:02:34

GIT修改用户名

在GIT中修改用户名可按以下步骤操作: 查看当前git的用户名,使用命令git config --list或git config user.name。修改git用户名,使用命令git config --global user.name "xxx(新的用户名)",将其中…

阅读更多
Win11Debloat:让你的Windows系统重获新生的终极优化工具
2026/6/23 23:39:46

Win11Debloat:让你的Windows系统重获新生的终极优化工具

Win11Debloat:让你的Windows系统重获新生的终极优化工具 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter and …

阅读更多
技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践
2026/6/24 18:38:44

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践

技术深度解析:m4s-converter实现原理与B站缓存视频转换最佳实践 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个…

阅读更多