网站推广方案设计方案,wordpress 4.0 安装,湖南省城乡建设勘测院 网站,wordpress设置插件下载业务场景#xff1a;
web页面做了一个功能#xff0c;在websocket请求失败的情况#xff0c;会定时向服务端进行重试进行建立连接。 存在的问题是即使这个web系统没人操作的情况下#xff0c;只要页面没有关闭#xff0c;即使系统超时了页面也没有发生跳转#xff0c;这…业务场景
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发起请求的时候发现页面报错了那么就代表以及成功阻拦了请求