一文詳解Nginx的訪問限制與訪問控制
訪問限制
訪問限制是一種防止惡意訪問的常用手段,可以指定同一IP地址在固定時(shí)間內(nèi)的訪問次數(shù),或者指定同一IP地址在固定時(shí)間內(nèi)建立連接的次數(shù),若超過網(wǎng)站指定的次數(shù)訪問將不成功。
請(qǐng)求頻率限制配置
請(qǐng)求頻率限制是限制客戶端固定時(shí)間內(nèi)發(fā)起請(qǐng)求的次數(shù)。
如何啟用請(qǐng)求頻率?
(1)定義:在開啟訪問限制之前,需要對(duì)限制規(guī)則進(jìn)行定義。
如下圖:在nginx主配置文件中定義好如下限制規(guī)則

上述參數(shù)詳解:
limit_req_zone 表示限制請(qǐng)求規(guī)則,其中zone也有空間的意思。
$binary_remote_addr 表示二進(jìn)制形式的客戶端地址。
req_zone 表示規(guī)則名稱,為了便于引用,允許用戶自定義。
10m 表示存儲(chǔ)客戶端IP地址的空間大小。
rate 表示訪問頻率的限制范圍,1 r/s 表示1秒鐘一次。
(2)引用
限制規(guī)則定義之后需要在主頁(yè)配置文件中引用。

(3)測(cè)試
首次訪問頁(yè)面瀏覽正常

連續(xù)多訪問幾次后,出現(xiàn)頁(yè)面無(wú)法訪問。這是因?yàn)樵谥髋渲梦募卸x了請(qǐng)求頻率限制,并在主頁(yè)配置文件中引用了。

注意:Nginx的主配置文件對(duì)應(yīng)它管理的所有網(wǎng)站,主頁(yè)配置文件只對(duì)應(yīng)它所屬的網(wǎng)站。如果將限制規(guī)則引用到主配置文件中,Nginx管理的所有網(wǎng)站都將被改變;
如何啟用連接頻率限制?
連接頻率限制是指限制客戶端固定時(shí)間內(nèi)發(fā)起建立連接的次數(shù)。
1.定義
與請(qǐng)求頻率相同,連接頻率限制也需要進(jìn)行定義。但連接頻率在主配置文件中只定義規(guī)則名稱與IP地址存儲(chǔ)空間。

limit_conn_zone 表示限制連接規(guī)則,其中zone也有空間的意思。
$binary_remote_addr 表示二進(jìn)制形式的客戶端地址。
conn_zone 表示規(guī)則名稱,為了便于引用,允許用戶自定義。
10m 表示存儲(chǔ)客戶端IP地址的空間大小。
2、在主頁(yè)文件中配置引用即可

上述引用了連接頻率限制的名稱,還定義了同一個(gè)用戶IP地址的最大連接數(shù),此處為一個(gè)連接。
訪問控制
訪問控制是控制客戶端對(duì)服務(wù)端的訪問,并非僅限制請(qǐng)求次數(shù),而是允許某些請(qǐng)求或者直接拒絕某些請(qǐng)求。分為基于主機(jī)的訪問控制,另一種是基于用戶的訪問控制。
1、原理:基于主機(jī)的訪問控制是指通過主機(jī)的信息,來判斷是否接受請(qǐng)求,該功能基于Nginx模塊——ngx_http_access_module。
基于主機(jī)
在主頁(yè)配置文件中添加基于主機(jī)的訪問控制:

allow 表示允許該IP訪問
deny 表示禁止該IP訪問,all表示所有
測(cè)試:
1、用不在白名單的客戶端進(jìn)行訪問,結(jié)果被拒絕。

2、用白名單的用戶訪問可以成功訪問

注意:allow與deny是按照順序執(zhí)行的。
基于用戶
原理:基于用戶的訪問控制是指通過用戶的信息,來判斷是否接受該請(qǐng)求,該功能基于Nginx模塊——ngx_http_auth_basic_module。
1、創(chuàng)建用戶認(rèn)證文件
使用htpasswd 生成用戶密碼。

-c是創(chuàng)建的意思
-m是加密的意思
/etc/nginx/conf.d/passwd表示密碼文件的路徑。

2、啟用認(rèn)證

測(cè)試可知需要輸入用戶信息才能訪問

以上就是一文詳解Nginx的訪問限制與訪問控制的詳細(xì)內(nèi)容,更多關(guān)于Nginx訪問限制與訪問控制的資料請(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,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-12-12
通過Nginx+Tomcat+Redis實(shí)現(xiàn)持久會(huì)話
這篇文章主要介紹了通過Nginx+Tomcat+Redis實(shí)現(xiàn)持久會(huì)話的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-11-11
keepalived結(jié)合nginx實(shí)現(xiàn)nginx高可用的方法
這篇文章主要介紹了keepalived結(jié)合nginx實(shí)現(xiàn)nginx高可用的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03
nginx報(bào)錯(cuò):[emerg] getpwnam(“www“)failed問題及解決
這篇文章主要介紹了nginx報(bào)錯(cuò):[emerg] getpwnam(“www“)failed問題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-03-03
詳解NGINX訪問https跳轉(zhuǎn)到http的解決方法
這篇文章主要介紹了詳解NGINX訪問https跳轉(zhuǎn)到http的解決方法,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-06-06
nginx實(shí)現(xiàn)靜態(tài)文件的token認(rèn)證過程
這篇文章主要介紹了nginx實(shí)現(xiàn)靜態(tài)文件的token認(rèn)證過程,2024-06-06
Nginx靜態(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

