主頁 > 知識庫 > nginx請求限制配置方法

nginx請求限制配置方法

熱門標簽:硅谷的囚徒呼叫中心 百度競價點擊價格的計算公式 檢查注冊表項 阿里云 網站建設 智能手機 美圖手機 使用U盤裝系統(tǒng)

Nginx 是一個很強大的高性能Web和反向代理服務,它具有很多非常優(yōu)越的特性:
在連接高并發(fā)的情況下,Nginx是Apache服務不錯的替代品:Nginx在美國是做虛擬主機生意的老板們經常選擇的軟件平臺之一。能夠支持高達 50,000 個并發(fā)連接數(shù)的響應,感謝Nginx為我們選擇了 epoll and kqueue作為開發(fā)模型。

一、Nginx的請求限制

  • limit_conn_module 連接頻率限制
  • limit_req_module 請求頻率限制

二、HTTP協(xié)議的連接與請求

1、HTTP協(xié)議的連接與請求的概念

  • HTTP請求是建立在一次TCP連接基礎之上,完成一次http協(xié)議的請求先要進行tcp的三次握手。
  • 在TCP連接的基礎之上再建立HTTP的請求,一次TCP請求至少產生一次HTTP請求。

2、HTTP協(xié)議的連接與請求的圖解

3、HTTP協(xié)議的連接與請求的版本關系

HTTP協(xié)議版本 連接關系
HTTP1.0 TCP不能復用
HTTP1.1 順序性TCP復用
HTTP2.0 多路復用TCP復用

三、Nginx連接限制的配置語法

1、limit_conn_zone的配置語法

  • Syntax:limit_conn_zone key zone=name:size; limit_conn_zone表示申請的連接存儲空間。key 表示連接以哪個作為key,例如以客戶端的ip作為key,限制的就是客戶端的ip。zone=name表示申請的存儲空間的名稱。size表示申請的存儲空間的大小
  • Default:—— 表示默認沒有配置
  • Context:http 表示需要在http塊中進行配置

2、limit_conn的配置語法

  • Syntax:limit_conn zone number; zone表示limit_conn_zone中申請的存儲空間的名稱,number表示并發(fā)請求的限制,即同一時間限制連接數(shù)
  • Default:—— 表示默認沒有配置
  • Context:http,server,location 表示需要在http塊或server塊或location塊中進行配置

四、Nginx請求限制的配置語法

1、limit_req_zone的配置語法

  • Syntax:limit_req_zone key zone=name:size rate=rate; limit_req_zone表示申請的連接存儲空間。key 表示連接以哪個作為key,例如以客戶端的ip作為key,限制的就是客戶端的ip。zone=name表示申請的存儲空間的名稱。size表示申請的存儲空間的大小。rate表示請求的限制是多大,指的是一個限制的單位(以秒為單位)
  • Default:—— 表示默認沒有配置
  • Context:http 表示需要在http塊中進行配置

2、limit_req的配置語法

  • Syntax:limit_req zone=name [burst = number] [nodelay]; zone=name表示limit_req_zone中申請的存儲空間的名稱;burst = number表示超過了設置的速率以后,遺留的請求數(shù)量放到下一秒執(zhí)行;
  • Default:—— 表示默認沒有配置
  • Context:http,server,location 表示需要在http塊或server塊或location塊中進行配置

五、Nginx請求限制的配置演示

1、先創(chuàng)建是一個submodule.html頁面,上傳到/opt/app/html目錄下,以便配置好sub_module模塊編譯參數(shù)后訪問/opt/app/html目錄下的submodule.html頁面,查看替換的內容。

submodule.html頁面

<html>
	<head>
		<meta charset="utf-8">
		<title>submodule</title>
	</head>
	<body>
		<a>html</a></br>
		<a>xml</a></br>
		<a>json</a></br>
		<a>xml</a></br>
		<a>jsp</a></br>
		<a>html</a>
	</body>
</html>

瀏覽器訪問如下圖

2、編輯nginx.conf配置文件

[root@localhost /]# vim /etc/nginx/nginx.conf

3、在http塊中添加如下配置

#$binary_remote_addr表示客戶端的地址;
#zone=req_zone表示同一個客戶端地址發(fā)起的請求的存儲空間名稱
#1r/s 表示每秒一次
limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s;

4、在http塊的location塊中添加如下配置

#nginx連接請求限制的配置
location / {
    root /opt/app/html;
    limit_req zone=req_zone;
}

5、檢查配置修改的配置文件是否正確,返回successful表示配置文件修改無錯。否則檢查配置文件語法。

6、重新加載配置文件

[root@localhost /]# systemctl reload nginx

7、借助ab壓力測試工具做并發(fā)請求

ab壓力測試工具的安裝參考lz此博文鏈接:https://wwwxz.blog.csdn.net/article/details/118584751

#-n表示發(fā)起請求次數(shù),-c表示并發(fā)請求次數(shù) 
[root@localhost ~]# ab -n 20 -c 10 http://localhost/submodule.html

到此這篇關于nginx請求限制配置方法的文章就介紹到這了,更多相關nginx請求限制內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

標簽:山南 湘潭 通遼 懷化 黃山 湖北 煙臺 賀州

巨人網絡通訊聲明:本文標題《nginx請求限制配置方法》,本文關鍵詞  ;如發(fā)現(xiàn)本文內容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內容系統(tǒng)采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266