nginx+tomcat重复请求

2023-05-16

好久不写技术文章了,越发的觉得单纯的讲技术没啥意思。怪不得知乎越来越火,因为大家都喜欢看故事,不喜欢硬生生的技术文章。笔者今天就来就给大家讲故事:)

最近网站压力突然增大,把带宽都占满了,访问网页发现非常的慢,打开页面的速度也奇慢大概要十几秒。这种情况还是第一次遇到,感觉不是被攻击了就是被攻击了!下面是网站的流量截图,一共1M的带宽在15点左右的时候瞬间慢了,然后就是持续的在峰值左右徘徊。


当时的想法是莫非网站的访问量到达了一定程度要增加带宽了?可是通过看网站的统计数据,访问的人数并没有明显的增加。这时自己更加坚定一定是被攻击了!

SSH连上服务器查看日志,居然连SSH都特别慢,这让我更加坚定自己的判断,妈蛋绝对被攻击了!但是后台日志没有什么明显的错误信息。可是网站还是特别卡,一直持续了两个小时。一定是自己忽略了什么东西。既然是变慢,首先看CPU,内存啥的。于是查看了一下服务器的CPU和内存,没有啥问题,就是带宽变满了。看来是大量的访问造成的,又一次认真的查看了日志,这次看的是tomcataccess日志,这下发现了问题。很多页面在同一时间,或者说基本上在同一时间被访问了多次。


如果说整个日志中有那么几条是这种重复的倒还可以理解,可能是用户打不开页面触发了浏览器的刷新操作,但是大面积的都是这种重复的访问请求肯定就不正常了。检查了一下自己的前台代码看看是否是自己的JS写错了,导致客户端同一时间发起多次请求。检查了半天未果。

到这里问题算是找到了:多次请求导致带宽不够用。但是原因是什么呢?继续讲故事……

想到自己在配置网站的时候用到了Nginx做反向代理,突然就感觉会不会是Nginx的配置有什么问题呢?检查了一遍Nginx的配置,没发现啥问题,简单的转向再写错就不活了。莫非重复的请求本身不是服务器配置的问题?于是检查了Nginxaccesslog,令人惊讶的是在Nginxlog当中同样的是重复的访问情况。这就证明了不是我配置的问题,因为Access log足以证明在请求到达服务器之前就是多次请求。难道真的有人攻击?于是开始查找Nginxlog当中重复的IP,果然让我找到了一些重复的IP,这些IP都是72.21.217.*这个网段的。到这里我知道真相距离我越来越近了。去网上搜索的了一下这个网段的IP更是让我大吃一惊。


原来这些IP都是来自于亚马逊的爬虫,顿时恍然大悟,这一切都是因为前几天在网页上加上了亚马逊的广告。联系了亚马逊的客服人员,仔细询问了亚马逊是否会索引广告所在的页面,得到的回答是肯定的,到此为止一切真相大白。原来亚马逊为了提供更好的广告质量,索引了有广告的页面,造成的后果就是每当用户访问一个带有广告的页面他的蜘蛛就会爬取这个页面,所以网站压力肯定增大喽。

知道了原因下面就是采取措施来避免了,修改Nginx配置很轻松的屏蔽掉亚马逊的IP

location /{
  if ($http_x_forwarded_for ~ "72.21.217.*"){
          return 503; 
  }
  index  index.jsp;
  proxy_pass  http://127.0.0.1:8080;
}

然后reload Nginx的配置,网站一切恢复如初。


 总结:一切都有因果,任何事情绝不是凭空产生的,只要追根溯源耐心寻找就一定能找出事实的真相。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

nginx+tomcat重复请求 的相关文章

随机推荐

  • Systemd 服务管理教程

    Systemd 概述 Systemd 简介 Systemd 是一系列工具的集合 xff0c 其作用也远远不仅是启动操作系统 xff0c 它还接管了后台服务 结束 状态查询 xff0c 以及日志归档 设备管理 电源管理 定时任务等许多职责 x
  • 高版本Matlab运行时//在当前文件夹或MATLAB路径中未找到文件//函数或变量 ‘xx‘ 无法识别//解决方法

    当你用2019以上版本Matlab时 xff0c 可能会发现这样一个问题 xff1a 当你默默选择 更改文件夹 或者 添加到路径 后 xff0c Matlab又会输出 函数或变量 xx 无法识别 类似这样 xff1a 总之不会乖乖出现运行结
  • 美团技术十年:让我们感动的那些人那些事

    时光荏苒 xff0c 美团十岁了 xff0c 美团技术团队也走过了十个春秋 2010年3月4日美团网上线的时候 xff0c 整个公司总共十来人 xff0c 在一套三居室的民房里起步 其中技术团队只有5个人 xff0c 现在有4位还在美团 今
  • 如何在Windows上轻松安全的将数据从HDD迁移到SSD?

    当你打算升级硬盘时 xff0c 如何将数据从HDD迁移到SSD xff1f 你可以使用一款免费的软件将所有数据从一个硬盘克隆到另一个硬盘 为什么要将数据从HDD迁移到SSD xff1f HDD xff08 机械硬盘 xff09 和SSD x
  • Ubuntu 16.04安装Python3.8

    bin sh install software properties common sudo apt install software properties common install PPA sudo add apt repositor
  • error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项: 值“0”不匹配值“2” 解决方法

    错误原因 xff0c Debug工程引用了Release版本的库文件 解决方法
  • 关于wince OS开发面试问题的总结系列之Bootloader

    参考资料 xff1a 1 Windows CE 工程事件完全解析 by xff1a 李大为 2 Windos CE 实用开发技术 by xff1a 张冬泉 等 3 Windows Embedded CE 6 0 Fundamentals 4
  • Jacobian矩阵和Hessian矩阵

    1 Jacobian 转载自 xff1a http jacoxu com p 61 146 在向量分析中 雅可比矩阵是一阶偏导数以一定方式排列成的矩阵 其行列式称为雅可比行列式 还有 在代数几何中 代数曲线的雅可比量表示雅可比簇 xff1a
  • 打工与乘公交

    去一个公司打工就如同上了一辆公交车 在上车之前 xff0c 你应该清楚自己打算去哪里 xff0c 打算在哪里下车 有的公交车很豪华 xff0c 有的很破烂 xff0c 但是这并不是重点 xff0c 所有能开到目的地的车都是好车 上了车之后
  • 卡尔曼滤波器(从vchelp的算法论坛上看到的)

    卡尔曼滤波器 Kalman Filter 1 xff0e 什么是卡尔曼滤波器 xff08 What is the Kalman Filter xff09 在学习卡尔曼滤波器之前 xff0c 首先看看为什么叫 卡尔曼 跟其他著名的理论 xff
  • 第4篇 FreeRTOS是如何工作的---基本原理3(上下文切换)

    上下文切换Context Switching 任务执行时 xff0c 它使用处理器 微控制器的寄存器并访问RAM和ROM xff0c 就像任何其他程序一样 这些资源 处理器寄存器 堆栈等 组成了任务执行上下文 任务是一段连续的代码 xff0
  • MissionPlanner-开发历程-1

    1 Mission Planner 简介 Mission Planner是使用C 开发的开源飞控地面站软件 xff0c 使用MavLink通信协议 xff0c 浏览官方网站 Mission Planner是ArduPilot开源自动驾驶项目
  • 关于SpringSecurity配置中的一些问题解决(登录页面不跳转,报错302)

    1 为何在自定义的登录页面中登录完页面不跳转 xff1f 主要是SpringSecurity在校验csrf跨域时候 xff0c 会传一个csrf相关的随机token值 xff01 在SpringSecurity 4 之后 xff0c 其cs
  • DAY2. jetson nx gpio

    更新 扩展接口说明 xff0c 官方说明文档 xff1a Jetson Xavier NX DevKit Carrier Board Specification v1 0 pdf 分割线 参照这个文档 xff1a https www jet
  • 使用kinect2进行目标跟踪-ROS平台

    之前闲得无聊 xff0c 在ROS平台上调用Kinect摄像头进行目标跟踪检测 首先 xff0c 要在ubuntu下安装好Kinect2和ROS的接口 xff0c 参考http www mamicode com info detail 15
  • 在ROS中使用opencv-灰度处理

    没什么好说的 xff0c 直接看代码理解吧 xff1a include lt ros ros h gt ros标准库头文件 include lt iostream gt C 43 43 标准输入输出库 cv bridge中包含CvBridg
  • GCC的编译流程分为了四个步骤:

    GCC的编译流程分为了四个步骤 1 预处理 xff0c 生成预编译文件 xff08 文件 xff09 xff1a Gcc E hello c o hello i 2 编译 xff0c 生成汇编代码 xff08 s文件 xff09 xff1a
  • Android自定义控件基础

    采用自定义控件解决重复编写代码的问题 总共分三步 1 写好一个自定义模板布局 title XML span class hljs pi lt xml version 61 34 1 0 34 encoding 61 34 utf 8 34
  • String,StringBuffer,StringBuilder的区别(优缺点)

    最近学习到StringBuffer xff0c 心中有好些疑问 xff0c 搜索了一些关于String xff0c StringBuffer xff0c StringBuilder的东西 xff0c 现在整理一下 关于这三个类在字符串处理中
  • nginx+tomcat重复请求

    好久不写技术文章了 xff0c 越发的觉得单纯的讲技术没啥意思 怪不得知乎越来越火 xff0c 因为大家都喜欢看故事 xff0c 不喜欢硬生生的技术文章 笔者今天就来就给大家讲故事 最近网站压力突然增大 xff0c 把带宽都占满了 xff0