网站由于恶意访问量很大导致无法正常访问怎么办

2024-02-06 21:40

本文主要是介绍网站由于恶意访问量很大导致无法正常访问怎么办,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天,突然发现我N年前的一个网站(企业展示型网站)突然打不开了,加载条一直在转,看这架势像是压力太大,导致响应速度跟不上。

这是一个小站,平时没多少人访问的,感觉肯定是出了什么状况,可能是访问量太大了?先确认一下,打开nginx日志目录(具体目录可在虚拟主机配置文件查看),用tail -f xxx.log就可以实时查看访问记录,如果文件刷新的速度很慢,即说明即时的访问量不大,但如果文件内容刷新的很快,就要注意了,网站当前可能正在受到攻击。

操作步骤:

打开虚拟主机配置文件查看访问日志路径
在这里插入图片描述复制出来,然后用 tail -f [日志路径]来查看,例如 taif -f /data/log/XXX.log,然后会打开一个会实时刷新该网站访问记录的页面,如下图:
在这里插入图片描述
图中有下划线的就是访问来源的IP,红色圈中的就是状态码,如果发现某个IP发了大量的请求而且来源不明,或者明显在用随机的参数或路径试探式的访问接口或页面,很有可能是攻击的来源,把有异常的IP复制到记事本,然后把相应的IP加到黑名单中,这样在web服务器接收到请求的时候就直接返回了403(禁止访问)的状态码,不会给数据库带来什么压力。

那怎么将IP加入到nginx的黑名单呢,可以在/opt/nginx/conf目录下新建一个文件,通常按国际惯例叫ip.black即可,内容是 deny X.X.X.X; 这样的格式,然后在nginx.conf文件中的前面加入一行 include ip.black; 就可以了,内容如下图所示:
在这里插入图片描述
在这里插入图片描述
改完之后记着先用 /opt/nginx/sbin/nginx -t先检查一下配置有没问题,如果一切正常,执行reload 命令就可以了。

正常情况下,再打开日志的时候会发现这个IP所有的请求响应的状态码都由原来的200变成403了,那就是配置起作用了,当这个ip来访问网站,到nginx层就直接把这个请求拒绝了,不会到执行逻辑代码的层面去,这些垃圾请求也就不会再给你的服务器或数据库带来什么压力,正常的网站访问请求马上可以正常响应了。
在这里插入图片描述
效果就是这样的,相应IP的请求直接返回了403状态码,世界都清静了

这篇关于网站由于恶意访问量很大导致无法正常访问怎么办的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/685630

相关文章

nginx部署https网站的实现步骤(亲测)

《nginx部署https网站的实现步骤(亲测)》本文详细介绍了使用Nginx在保持与http服务兼容的情况下部署HTTPS,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值... 目录步骤 1:安装 Nginx步骤 2:获取 SSL 证书步骤 3:手动配置 Nginx步骤 4:测

Idea实现接口的方法上无法添加@Override注解的解决方案

《Idea实现接口的方法上无法添加@Override注解的解决方案》文章介绍了在IDEA中实现接口方法时无法添加@Override注解的问题及其解决方法,主要步骤包括更改项目结构中的Languagel... 目录Idea实现接China编程口的方法上无法添加@javascriptOverride注解错误原因解决方

本地搭建DeepSeek-R1、WebUI的完整过程及访问

《本地搭建DeepSeek-R1、WebUI的完整过程及访问》:本文主要介绍本地搭建DeepSeek-R1、WebUI的完整过程及访问的相关资料,DeepSeek-R1是一个开源的人工智能平台,主... 目录背景       搭建准备基础概念搭建过程访问对话测试总结背景       最近几年,人工智能技术

Ollama整合open-webui的步骤及访问

《Ollama整合open-webui的步骤及访问》:本文主要介绍如何通过源码方式安装OpenWebUI,并详细说明了安装步骤、环境要求以及第一次使用时的账号注册和模型选择过程,需要的朋友可以参考... 目录安装环境要求步骤访问选择PjrIUE模型开始对话总结 安装官方安装地址:https://docs.

redis防止短信恶意调用的实现

《redis防止短信恶意调用的实现》本文主要介绍了在场景登录或注册接口中使用短信验证码时遇到的恶意调用问题,并通过使用Redis分布式锁来解决,具有一定的参考价值,感兴趣的可以了解一下... 目录1.场景2.排查3.解决方案3.1 Redis锁实现3.2 方法调用1.场景登录或注册接口中,使用短信验证码场

C#多线程编程中导致死锁的常见陷阱和避免方法

《C#多线程编程中导致死锁的常见陷阱和避免方法》在C#多线程编程中,死锁(Deadlock)是一种常见的、令人头疼的错误,死锁通常发生在多个线程试图获取多个资源的锁时,导致相互等待对方释放资源,最终形... 目录引言1. 什么是死锁?死锁的典型条件:2. 导致死锁的常见原因2.1 锁的顺序问题错误示例:不同

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置

golang1.23版本之前 Timer Reset方法无法正确使用

《golang1.23版本之前TimerReset方法无法正确使用》在Go1.23之前,使用`time.Reset`函数时需要先调用`Stop`并明确从timer的channel中抽取出东西,以避... 目录golang1.23 之前 Reset ​到底有什么问题golang1.23 之前到底应该如何正确的

Java访问修饰符public、private、protected及默认访问权限详解

《Java访问修饰符public、private、protected及默认访问权限详解》:本文主要介绍Java访问修饰符public、private、protected及默认访问权限的相关资料,每... 目录前言1. public 访问修饰符特点:示例:适用场景:2. private 访问修饰符特点:示例:

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修