一文詳解Nginx的訪(fǎng)問(wèn)限制與訪(fǎng)問(wèn)控制
訪(fǎng)問(wèn)限制
訪(fǎng)問(wèn)限制是一種防止惡意訪(fǎng)問(wèn)的常用手段,可以指定同一IP地址在固定時(shí)間內(nèi)的訪(fǎng)問(wèn)次數(shù),或者指定同一IP地址在固定時(shí)間內(nèi)建立連接的次數(shù),若超過(guò)網(wǎng)站指定的次數(shù)訪(fǎng)問(wèn)將不成功。
請(qǐng)求頻率限制配置
請(qǐng)求頻率限制是限制客戶(hù)端固定時(shí)間內(nèi)發(fā)起請(qǐng)求的次數(shù)。
如何啟用請(qǐng)求頻率?
(1)定義:在開(kāi)啟訪(fǎng)問(wèn)限制之前,需要對(duì)限制規(guī)則進(jìn)行定義。
如下圖:在nginx主配置文件中定義好如下限制規(guī)則
上述參數(shù)詳解:
limit_req_zone 表示限制請(qǐng)求規(guī)則,其中zone也有空間的意思。
$binary_remote_addr 表示二進(jìn)制形式的客戶(hù)端地址。
req_zone 表示規(guī)則名稱(chēng),為了便于引用,允許用戶(hù)自定義。
10m 表示存儲(chǔ)客戶(hù)端IP地址的空間大小。
rate 表示訪(fǎng)問(wèn)頻率的限制范圍,1 r/s 表示1秒鐘一次。
(2)引用
限制規(guī)則定義之后需要在主頁(yè)配置文件中引用。
(3)測(cè)試
首次訪(fǎng)問(wèn)頁(yè)面瀏覽正常
連續(xù)多訪(fǎng)問(wèn)幾次后,出現(xiàn)頁(yè)面無(wú)法訪(fǎng)問(wèn)。這是因?yàn)樵谥髋渲梦募卸x了請(qǐng)求頻率限制,并在主頁(yè)配置文件中引用了。
注意:Nginx的主配置文件對(duì)應(yīng)它管理的所有網(wǎng)站,主頁(yè)配置文件只對(duì)應(yīng)它所屬的網(wǎng)站。如果將限制規(guī)則引用到主配置文件中,Nginx管理的所有網(wǎng)站都將被改變;
如何啟用連接頻率限制?
連接頻率限制是指限制客戶(hù)端固定時(shí)間內(nèi)發(fā)起建立連接的次數(shù)。
1.定義
與請(qǐng)求頻率相同,連接頻率限制也需要進(jìn)行定義。但連接頻率在主配置文件中只定義規(guī)則名稱(chēng)與IP地址存儲(chǔ)空間。
limit_conn_zone 表示限制連接規(guī)則,其中zone也有空間的意思。
$binary_remote_addr 表示二進(jìn)制形式的客戶(hù)端地址。
conn_zone 表示規(guī)則名稱(chēng),為了便于引用,允許用戶(hù)自定義。
10m 表示存儲(chǔ)客戶(hù)端IP地址的空間大小。
2、在主頁(yè)文件中配置引用即可
上述引用了連接頻率限制的名稱(chēng),還定義了同一個(gè)用戶(hù)IP地址的最大連接數(shù),此處為一個(gè)連接。
訪(fǎng)問(wèn)控制
訪(fǎng)問(wèn)控制是控制客戶(hù)端對(duì)服務(wù)端的訪(fǎng)問(wèn),并非僅限制請(qǐng)求次數(shù),而是允許某些請(qǐng)求或者直接拒絕某些請(qǐng)求。分為基于主機(jī)的訪(fǎng)問(wèn)控制,另一種是基于用戶(hù)的訪(fǎng)問(wèn)控制。
1、原理:基于主機(jī)的訪(fǎng)問(wèn)控制是指通過(guò)主機(jī)的信息,來(lái)判斷是否接受請(qǐng)求,該功能基于Nginx模塊——ngx_http_access_module。
基于主機(jī)
在主頁(yè)配置文件中添加基于主機(jī)的訪(fǎng)問(wèn)控制:
allow 表示允許該IP訪(fǎng)問(wèn)
deny 表示禁止該IP訪(fǎng)問(wèn),all表示所有
測(cè)試:
1、用不在白名單的客戶(hù)端進(jìn)行訪(fǎng)問(wèn),結(jié)果被拒絕。
2、用白名單的用戶(hù)訪(fǎng)問(wèn)可以成功訪(fǎng)問(wèn)
注意:allow與deny是按照順序執(zhí)行的。
基于用戶(hù)
原理:基于用戶(hù)的訪(fǎng)問(wèn)控制是指通過(guò)用戶(hù)的信息,來(lái)判斷是否接受該請(qǐng)求,該功能基于Nginx模塊——ngx_http_auth_basic_module。
1、創(chuàng)建用戶(hù)認(rèn)證文件
使用htpasswd 生成用戶(hù)密碼。
-c是創(chuàng)建的意思
-m是加密的意思
/etc/nginx/conf.d/passwd表示密碼文件的路徑。
2、啟用認(rèn)證
測(cè)試可知需要輸入用戶(hù)信息才能訪(fǎng)問(wèn)
以上就是一文詳解Nginx的訪(fǎng)問(wèn)限制與訪(fǎng)問(wèn)控制的詳細(xì)內(nèi)容,更多關(guān)于Nginx訪(fǎng)問(wèn)限制與訪(fǎng)問(wèn)控制的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
nginx https反向代理tomcat的2種實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于nginx https反向代理tomcat的2種實(shí)現(xiàn)方法,第一種方法是nginx配置https,tomcat也配置https,第二種方法是nginx采用https,tomcat采用http,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-12-12通過(guò)Nginx+Tomcat+Redis實(shí)現(xiàn)持久會(huì)話(huà)
這篇文章主要介紹了通過(guò)Nginx+Tomcat+Redis實(shí)現(xiàn)持久會(huì)話(huà)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11keepalived結(jié)合nginx實(shí)現(xiàn)nginx高可用的方法
這篇文章主要介紹了keepalived結(jié)合nginx實(shí)現(xiàn)nginx高可用的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03nginx報(bào)錯(cuò):[emerg] getpwnam(“www“)failed問(wèn)題及解決
這篇文章主要介紹了nginx報(bào)錯(cuò):[emerg] getpwnam(“www“)failed問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03詳解NGINX訪(fǎng)問(wèn)https跳轉(zhuǎn)到http的解決方法
這篇文章主要介紹了詳解NGINX訪(fǎng)問(wèn)https跳轉(zhuǎn)到http的解決方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-06-06nginx實(shí)現(xiàn)靜態(tài)文件的token認(rèn)證過(guò)程
這篇文章主要介紹了nginx實(shí)現(xiàn)靜態(tài)文件的token認(rèn)證過(guò)程,2024-06-06Nginx靜態(tài)文件響應(yīng)POST請(qǐng)求 提示405錯(cuò)誤的解決方法
Apache、IIS、nginx等絕大多數(shù)web服務(wù)器,都不允許靜態(tài)文件響應(yīng)POST請(qǐng)求,否則會(huì)返回“HTTP/1.1 405 Method not allowed”錯(cuò)誤2013-04-04