Nginx抢购限流配置实现解析
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,因业务需求经常会有抢购业务,因此需要在负载均衡前端进行限流错误。本文同样也适用于防止CC. limit_req_zone $server_name zone=sname:10m rate=1r/s;
千家信息网最后更新 2025年02月06日Nginx抢购限流配置实现解析
因业务需求经常会有抢购业务,因此需要在负载均衡前端进行限流错误。本文同样也适用于防止CC.
limit_req_zone $server_name zone=sname:10m rate=1r/s; #限制服务器每秒只能有一次访问成功 #limit_req_zone $binary_remote_addr zone=one:3m rate=1r/s; #限制IP,每秒只能访问一次 #limit_req_zone $binary_remote_addr $uri zone=two:3m rate=1r/s; #限制IP和路径不带参数, #limit_req_zone $binary_remote_addr $request_uri zone=thre:3m rate=1r/s; #限制IP和带参数的路径 server { listen 80; server_name www.abc.com; location / { include host/proxy.cnf; proxy_pass http://backend; } location /api/createOrder { limit_req zone=sname; #不带突发,只能有一次正常请求 limit_req_status 503; #设置返回的状态码是503 #limit_req zone=sname burst=5 nodelay; #最大并发是5,并且实时处理 include host/proxy.cnf; proxy_pass http://backend; error_page 503 =200 /50x.html; #这里很重要,可以将错误的状态码503,返回结果的时候是200 } location = /50x.html { if ($http_user_agent ~* "mobile|android|iPhone|iphone|ios|iOS"){ #default_type application/json; return 200 '{"msg": "活动过于火爆,请稍后重试!","data": {},"code": -1}'; #设置移动端返回错误的信息显示 } root html; #如果是PC端返回一个HTML页面 } }
重点: 正常情况下,如果设置了限流,返回是503的状态码,这对于移动端来说即便是你返回JSON数据但是客户端时不认的,这个时候巧妙的通过 error_page 403 =200 /50x.html;将状态码设置为200
以上只是使用了ngx_limit_req_module,同时也可以使用ngx_limit_conn_module模块。
以上参考: https://gist.github.com/simlegate/75b18359316cc33d8e20
特别是一些咨询类网站如果备爬虫盯上,服务器可能会被爬虫给干死(小网站就是这样)
那么怎么办呢,我们可以使用变量去做
#全局配置limit_req_zone $spider zone=spider:60m rate=200r/m; #限制爬虫每分钟只能跑200次#某个server中limit_req zone=spider burst=5 nodelay;if ($http_user_agent ~* "spider|bot") { set $spider $http_user_agent; #设置变量,进入这里的就进行限速}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
限制
状态
爬虫
错误
业务
参数
变量
就是
时候
服务器
网站
路径
服务
移动
配置
巧妙
最大
重要
均衡
成功
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术和数据库哪个更实用
软件开发合同增补协议范本
软件开发 sde 有哪些
启帆网络技术作文
营口市科技软件开发有限公司
图数据库为什么是中间件
晋城大屏触摸软件开发公司
简述计算机网络安全技术的内容
郑州大学网络安全与空间
吃鸡as是什么服务器
正德创融资讯网络技术
服务器硬盘200g有多大
北京农行软件开发属于总行吗
楚汉互联网络科技
ps艾尔登法环登录不了服务器
各大云平台的服务器在哪
本质上的网络安全怎么做
延吉市鸿强软件开发有限公司
西安市千度网络技术有限公司
数据库课程设计教程
电子书阅读器软件开发
网络安全度量标准
服务器管理日志怎么看
杭州营销网络技术
服务器密码安全管理要求
黑客谈移动网络安全
长沙扫雷红包软件开发
比较值得学习的网络技术
南宁网络技术服务
软件开发考研内容