当前位置: 首页 > news >正文

【NGINX】NGINX如何阻止指定ip的请求

业务场景:

web页面做了一个功能,在websocket请求失败的情况,会定时向服务端进行重试进行建立连接。
存在的问题是即使这个web系统没人操作的情况下,只要页面没有关闭,即使系统超时了页面也没有发生跳转,这就有点像对服务器进行攻击一样。

问题分析:

经过分析,从上述描述的情况来看,有如下问题:
1、系统超时的时候,页面应该要一个跳转,例如跳转到登陆页面。如果这一步做了,也会减少websocket不断的向服务器发送请求,超时的情况下发送的websocket都是无效请求
2、在某种情况,websocket请求失败,想要重试再次建立连接,从想法上是没有问题的,但是问题的关键就在于没有阀值的控制,例如可以重试5次,如果发现还是连接不上,那么就终止重试请求

解决方案:

1、系统超时的时候,页面跳转到登陆页面就可以了。前端可以根据检测操作事件,根据时间来控制,如果超时了,那么就自动跳转。
2、重试次数控制,增加业务逻辑就可以了,也没有特别的。
3、因为这种不断的请求就会导致服务端很痛苦,尤其是那种系统超时过来的无效的请求。如果想要临时阻止这种情况,NGINX上是可以配置的。
1)、识别请求IP
可以到NGINX的日志文件中取查看,logs/access.log, 下面是摘出来一条日志:

192.0.79.100 - - [31/Jan/2024:11:39:34 +0800] "GET /prod-api/getRouters HTTP/1.0" 200 7495 "域名XXXX" 
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36" "192.0.79.10"

我从上面可以看出,请求来源于192.0.79.100

2)、配置想要阻止的请求地址

location / {deny 192.0.79.100;
}


3)、重启NGINX

./nginx -s reload

4)、测试请求

当192.0.79.100机器再次往这个NGINX发起请求的时候,发现页面报错了,那么就代表以及成功阻拦了请求

http://www.lryc.cn/news/291040.html

相关文章:

  • PHP抽奖设置中奖率,以及防高并发
  • 使用.NET6 Avalonia开发跨平台三维应用
  • linux(ubuntu)中crontab定时器命令详解 以及windows中定时器
  • 植物病害检测YOLOV8,OPENCV调用
  • C++初阶:入门泛型编程(函数模板和类模板)
  • 【RT-DETR有效改进】CARAFE提高精度的上采样方法(助力细节长点)
  • leetcode 27.移除元素(python版)
  • 分布式场景怎么Join
  • springboot2.7继承swagger knif4j
  • C++ 实现单例模式
  • Java多线程--线程安全问题练习题
  • PHY6252低成本Mesh组网蓝牙芯片
  • 红外图像中两点校正的增益系数与偏置系数的计算公式推导
  • C++/MFC:在窗体Form(Dialog)中多个编辑框时,在输入时将回车解释为TAB键,将输入焦点移到下一个编辑框的方法
  • 鸿蒙南向开发——GN快速入门指南
  • PyCharm常用快捷键和设置
  • Unity - 调节camera物理相机参数(HDRP)
  • @JsonIgnore的使用及相关问题的解决
  • 万户 ezOFFICE SendFileCheckTemplateEdit.jsp SQL注入漏洞
  • 自建DNS劫持服务器,纯内网劫持PS5,屏蔽更新,自动hen
  • C语言王道第八周一题
  • 探索1688店铺所有商品API接口:一键获取海量数据,开启商业智能新篇章
  • 使用Win32API实现贪吃蛇小游戏
  • 力扣0114——二叉树展开为链表
  • FPGA硬件架构
  • spring boot 嵌入chatGPT步骤
  • 博云科技与中科可控全面合作,探索前沿金融科技新机遇
  • 十一、常用API——练习
  • 基于ssm和微信小程序的健身房私教预约管理系统
  • 微服务架构