NGINX阻止指定ip的請(qǐng)求問(wèn)題及解決方案
業(yè)務(wù)場(chǎng)景:
web頁(yè)面做了一個(gè)功能,在websocket請(qǐng)求失敗的情況,會(huì)定時(shí)向服務(wù)端進(jìn)行重試進(jìn)行建立連接。
存在的問(wèn)題是即使這個(gè)web系統(tǒng)沒(méi)人操作的情況下,只要頁(yè)面沒(méi)有關(guān)閉,即使系統(tǒng)超時(shí)了頁(yè)面也沒(méi)有發(fā)生跳轉(zhuǎn),這就有點(diǎn)像對(duì)服務(wù)器進(jìn)行攻擊一樣。
問(wèn)題分析:
經(jīng)過(guò)分析,從上述描述的情況來(lái)看,有如下問(wèn)題:
1、系統(tǒng)超時(shí)的時(shí)候,頁(yè)面應(yīng)該要一個(gè)跳轉(zhuǎn),例如跳轉(zhuǎn)到登陸頁(yè)面。如果這一步做了,也會(huì)減少websocket不斷的向服務(wù)器發(fā)送請(qǐng)求,超時(shí)的情況下發(fā)送的websocket都是無(wú)效請(qǐng)求
2、在某種情況,websocket請(qǐng)求失敗,想要重試再次建立連接,從想法上是沒(méi)有問(wèn)題的,但是問(wèn)題的關(guān)鍵就在于沒(méi)有閥值的控制,例如可以重試5次,如果發(fā)現(xiàn)還是連接不上,那么就終止重試請(qǐng)求
解決方案:
1、系統(tǒng)超時(shí)的時(shí)候,頁(yè)面跳轉(zhuǎn)到登陸頁(yè)面就可以了。前端可以根據(jù)檢測(cè)操作事件,根據(jù)時(shí)間來(lái)控制,如果超時(shí)了,那么就自動(dòng)跳轉(zhuǎn)。
2、重試次數(shù)控制,增加業(yè)務(wù)邏輯就可以了,也沒(méi)有特別的。
3、因?yàn)檫@種不斷的請(qǐng)求就會(huì)導(dǎo)致服務(wù)端很痛苦,尤其是那種系統(tǒng)超時(shí)過(guò)來(lái)的無(wú)效的請(qǐng)求。如果想要臨時(shí)阻止這種情況,NGINX上是可以配置的。
1)、識(shí)別請(qǐng)求IP
可以到NGINX的日志文件中取查看,logs/access.log, 下面是摘出來(lái)一條日志:
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"
我從上面可以看出,請(qǐng)求來(lái)源于192.0.79.100
2)、配置想要阻止的請(qǐng)求地址
location / { deny 192.0.79.100; }
3)、重啟NGINX
./nginx -s reload
4)、測(cè)試請(qǐng)求
當(dāng)192.0.79.100機(jī)器再次往這個(gè)NGINX發(fā)起請(qǐng)求的時(shí)候,發(fā)現(xiàn)頁(yè)面報(bào)錯(cuò)了,那么就代表以及成功阻攔了請(qǐng)求
到此這篇關(guān)于NGINX如何阻止指定ip的請(qǐng)求的文章就介紹到這了,更多相關(guān)nginx 阻止指定ip的請(qǐng)求內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
詳解 Nginx 負(fù)載均衡和反向代理配置和優(yōu)化
這篇文章主要介紹了詳解 Nginx 負(fù)載均衡和反向代理配置和優(yōu)化的相關(guān)資料,需要的朋友可以參考下2017-03-03nginx隱藏響應(yīng)頭server信息和版本號(hào)信息的操作方法
文章介紹了兩種隱藏或修改Nginx響應(yīng)頭中server信息的方法:一種是通過(guò)修改配置文件全局段添加`server_tokens off`,另一種是重新編譯Nginx并修改Banner信息,兩種方法分別適用于傳統(tǒng)部署和需要更靈活自定義的情況,需要的朋友可以參考下2025-02-02nginx上設(shè)置html不緩存的方法實(shí)現(xiàn)
前端項(xiàng)目發(fā)布以后,經(jīng)常會(huì)遇到訪問(wèn)不到最新的版本,這主要是由于我們項(xiàng)目的入口文件index.html被瀏覽器或者代理緩存了,本文主要介紹了nginx上設(shè)置html不緩存,具有一定的參考價(jià)值,感興趣的可以了解一下2024-02-02Nginx轉(zhuǎn)發(fā)404問(wèn)題的排查和思考
本篇文章原自當(dāng)前業(yè)務(wù)遇到的一個(gè)實(shí)際問(wèn)題,因?yàn)槭艿剿诰W(wǎng)絡(luò)環(huán)境的因素影響,所以整體排查下來(lái)耗費(fèi)了很大精力,記錄一下Nginx 轉(zhuǎn)發(fā) 404 問(wèn)題的排查和思考,需要的朋友可以參考下2023-09-09nginx自定義變量與內(nèi)置預(yù)定義變量的使用
這篇文章主要介紹了nginx自定義變量與內(nèi)置預(yù)定義變量的使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06Nginx出現(xiàn)504 Gateway Time-out的解決方法
nginx訪問(wèn)出現(xiàn)504 Gateway Time-out,一般是由于程序執(zhí)行時(shí)間過(guò)長(zhǎng)導(dǎo)致響應(yīng)超時(shí),本文就來(lái)介紹一下解決方法,感興趣的可以了解一下2023-10-10nginx配置限制同一個(gè)ip的訪問(wèn)頻率方法
今天小編就為大家分享一篇nginx配置限制同一個(gè)ip的訪問(wèn)頻率方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-08-08Nginx?Socket代理的實(shí)現(xiàn)方法
Nginx的socket代理通常指的是Nginx通過(guò)stream模塊來(lái)處理非HTTP的?TCP?流量,本文就來(lái)介紹一下Nginx?Socket代理的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的可以了解一下2024-04-04