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