网站遭遇短时间内大量非正常请求时,通过以下几种方式进行控制

news/2025/1/4 11:36:04/文章来源:https://www.cnblogs.com/mys6/p/18646026
1.配置 Nginx 限流模块
ngx_http_limit_req_module:这是 Nginx 内置的请求限制模块。首先,打开 Nginx 的主配置文件(通常是nginx.conf)或者对应的虚拟主机配置文件,添加如下代码示例来限制单个 IP 地址的请求频率:
http {
limit_req_zone $binary_remote_addr zone=mylimit:10m rate=10r/s;
server {
location / {
limit_req zone=mylimit;
}
}
}
这段代码定义了一个名为mylimit的限流区域,使用客户端的 IP 地址($binary_remote_addr )作为识别标识,分配了 10MB 的内存空间,允许每秒最多 10 个请求。任何超出这个频率的请求都会被延迟处理,直到满足速率限制条件。

2.按 URL 限流:除了基于 IP 限流,还能针对特定 URL 路径进行限制。例如,只对 WordPress 的登录页面(wp-login.php)进行严格限流:
http {
limit_req_zone $binary_remote_addr zone=loginlimit:10m rate=3r/s;
server {
location = /wp-login.php {
limit_req zone=loginlimit;
}
}
}

3.封禁恶意 IP
手动封禁:发现恶意 IP 后,在 Nginx 配置文件中添加如下封禁规则:
server {
location / {
deny 192.168.1.100; # 替换成实际的恶意IP
allow all;
}
}

4.结合脚本动态封禁:搭配如fail2ban这样的工具,它能实时监测 Nginx 的访问日志,一旦检测到符合设定的恶意访问模式,例如短时间内多次 404 错误,就会自动把相关 IP 添加到 Nginx 的封禁列表中,实现自动化的 IP 封禁流程。
5.启用 Nginx 缓存
配置页面缓存:利用ngx_http_proxy_module或ngx_cache_purge模块实现页面缓存。例如,设置一个简单的缓存区域:
http {
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:100m inactive=60m;
server {
location / {
proxy_cache my_cache;
proxy_pass http://your_backend;
}
}
}
缓存机制可以让 Nginx 快速响应频繁访问的内容,减少后端 WordPress 服务器的负载,就算遭遇非正常的高频请求,也能依靠缓存维持网站运转,不至于立刻瘫痪。
6.使用 Nginx Web 应用防火墙(WAF)
ModSecurity:配合 Nginx 使用 ModSecurity ,这是一款开源的 WAF。安装并配置后,它依据一套预定义规则以及自定义规则来检测、拦截恶意请求,像是 SQL 注入、跨站脚本攻击这类非正常访问企图,都能在抵达 WordPress 站点之前被拦下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/862308.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

题解:AT_abc386_d [ABC386D] Diagonal Separation

分析题面,发现题目求的是是否存在一个白点被 \((1, 1)\) 和任意一个黑点围成的矩形内。 先将所有黑点按 \(x\) 坐标排序。 枚举所有的白点。 找到所有横坐标不比该白点横坐标小的所有黑点的纵坐标的最大值所属点。如果该点的纵坐标小于该白点的纵坐标:(蓝点代表题目中的白点…

【Miscellaneous】一道高质量的杂项题,涉及暴破、Cloakify-python2、零宽、emoji-AES等知识点

引言 下半年很忙,好久不做题,趁2025元旦放假整理一道高质量的题目,怀念一下繁忙的2024年。 题目 考虑到某公司的不分享精神或许会有版权之类的争端,文件链接以后就不放了。 名称:happymd5 提示:有好多奇奇怪怪的MD5值,这是用来干什么的呢。 Writeup(WP)题目附件cipher…

2025-01-01:优质数对的总数Ⅰ。用go语言,给定两个整数数组 nums1 和 nums2,分别长度为 n 和 m,以及一个正整数 k。 如果 nums1 数组中的元素 nums1[i] 能被

2025-01-01:优质数对的总数Ⅰ。用go语言,给定两个整数数组 nums1 和 nums2,分别长度为 n 和 m,以及一个正整数 k。 如果 nums1 数组中的元素 nums1[i] 能被 nums2 数组中的元素 nums2[j] 乘以 k 除尽,则称 (i, j) 为一个优质数对(其中 0 <= i <= n - 1,0 <= j …

高光谱图像选择波段的研究(转载)

高光谱图像选择波段的研究博文: 高光谱图像选择波段的研究 高光谱波段选择 LY-林雨    2016-08-25 12:08:45 发布免责声明:本文仅代表个人观点,如有错误,请读者自己鉴别;如果本文不小心含有别人的原创内容,请联系我删除;本人心血制作,若转载请注明出处 本文是根据 魏…

Webstorm 关闭 拼写错误

问题描述:cmd+,唤醒 设置把这个勾去掉就行

跨年,你怎么过

2024年最后一天,去了一趟上海的地标性建筑,感慨了下,来上海也13年来

2025.1.1 鲜花

Cdq 解决一类最值和双端点有关的数点问题Cdq 解决一类最值和双端点有关的数点问题COLORFUL BOX 真っ白な想いに 梦のかけらを 描いて 动き出す未来 子供の顷に知った 心が跃るような わくわくする感情を 今も覚えてるよ 迷いや不安はない 期待に溢れてる 何にだってなれ そうな…

Typora-Markdown使用教程

Markdown介绍 Markdown是一种轻量级的标记语言 通过简单的标记语法使文本具备一定的格式,它的目标就是实现易读,易写。 标题如上在要转为标题的前面输入一个#+一个空格,光标再定位到其他位置一个一级标题就设置好了 或者使用快捷键:Ctrl+1 总结: 一级标题:一个#,或者 Ct…

[Java/Spring] 深入理解:Spring Web DispatcherServlet

1 概述:Spring Web DispatcherServlet DispatcherServlet 简介org.springframework.web.servlet.DispatcherServlet 是一个 Servlet,它接收所有的 HTTP 请求,并根据请求的信息将其分发给相应的处理器(Handler)进行处理。 它是 Spring MVC 架构模式中的关键部分,将请求处理…

DVWA靶场File Inclusion (文件包含) 漏洞所有级别通关教程及源码解析

文件包含 文件包含漏洞(File Inclusion Vulnerability)是一种常见的网络安全漏洞,主要出现在应用程序中不安全地处理文件路径时。攻击者可以利用此漏洞执行恶意文件,或者访问不该被访问的文件 1. low 有3个页面随便点击一个,可以在url处发现传参点访问:http://127.0.0.1/…

[Java]代理模式

本篇文章主要是对静态代理和动态代理实现思路的简述,以示例为主,少涉及理论。 如果文中阐述不全或不对的,多多交流。【版权声明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) https://www.cnblogs.com/cnb-yuchen/p/18002823 出自【进步*于辰的博客】参考笔记一…

lvs+dr+httpd+keepalived高可用部署

lvs+dr+httpd+keepalived高可用部署参考文档:http://blog.csdn.net/m582445672/article/details/7670015 a、 keepalived 是lvs 的扩展项目,因此它们之间具备良好的兼容性。这点应该是keepalived 部署比其他类似工具能更简洁的原因吧! b、 通过对服务器池对象的健康检查,实…