nginx請(qǐng)求限制配置方法
Nginx 是一個(gè)很強(qiáng)大的高性能Web和反向代理服務(wù),它具有很多非常優(yōu)越的特性:
在連接高并發(fā)的情況下,Nginx是Apache服務(wù)不錯(cuò)的替代品:Nginx在美國(guó)是做虛擬主機(jī)生意的老板們經(jīng)常選擇的軟件平臺(tái)之一。能夠支持高達(dá) 50,000 個(gè)并發(fā)連接數(shù)的響應(yīng),感謝Nginx為我們選擇了 epoll and kqueue作為開發(fā)模型。
一、Nginx的請(qǐng)求限制
- limit_conn_module 連接頻率限制
- limit_req_module 請(qǐng)求頻率限制
二、HTTP協(xié)議的連接與請(qǐng)求
1、HTTP協(xié)議的連接與請(qǐng)求的概念
- HTTP請(qǐng)求是建立在一次TCP連接基礎(chǔ)之上,完成一次http協(xié)議的請(qǐng)求先要進(jìn)行tcp的三次握手。
- 在TCP連接的基礎(chǔ)之上再建立HTTP的請(qǐng)求,一次TCP請(qǐng)求至少產(chǎn)生一次HTTP請(qǐng)求。
2、HTTP協(xié)議的連接與請(qǐng)求的圖解

3、HTTP協(xié)議的連接與請(qǐng)求的版本關(guān)系
| HTTP協(xié)議版本 | 連接關(guān)系 |
|---|---|
| HTTP1.0 | TCP不能復(fù)用 |
| HTTP1.1 | 順序性TCP復(fù)用 |
| HTTP2.0 | 多路復(fù)用TCP復(fù)用 |
三、Nginx連接限制的配置語(yǔ)法
1、limit_conn_zone的配置語(yǔ)法
- Syntax:limit_conn_zone key zone=name:size; limit_conn_zone表示申請(qǐng)的連接存儲(chǔ)空間。key 表示連接以哪個(gè)作為key,例如以客戶端的ip作為key,限制的就是客戶端的ip。zone=name表示申請(qǐng)的存儲(chǔ)空間的名稱。size表示申請(qǐng)的存儲(chǔ)空間的大小
- Default:—— 表示默認(rèn)沒有配置
- Context:http 表示需要在http塊中進(jìn)行配置
2、limit_conn的配置語(yǔ)法
- Syntax:limit_conn zone number; zone表示limit_conn_zone中申請(qǐng)的存儲(chǔ)空間的名稱,number表示并發(fā)請(qǐng)求的限制,即同一時(shí)間限制連接數(shù)
- Default:—— 表示默認(rèn)沒有配置
- Context:http,server,location 表示需要在http塊或server塊或location塊中進(jìn)行配置
四、Nginx請(qǐng)求限制的配置語(yǔ)法
1、limit_req_zone的配置語(yǔ)法
- Syntax:limit_req_zone key zone=name:size rate=rate; limit_req_zone表示申請(qǐng)的連接存儲(chǔ)空間。key 表示連接以哪個(gè)作為key,例如以客戶端的ip作為key,限制的就是客戶端的ip。zone=name表示申請(qǐng)的存儲(chǔ)空間的名稱。size表示申請(qǐng)的存儲(chǔ)空間的大小。rate表示請(qǐng)求的限制是多大,指的是一個(gè)限制的單位(以秒為單位)
- Default:—— 表示默認(rèn)沒有配置
- Context:http 表示需要在http塊中進(jìn)行配置
2、limit_req的配置語(yǔ)法
- Syntax:limit_req zone=name [burst = number] [nodelay]; zone=name表示limit_req_zone中申請(qǐng)的存儲(chǔ)空間的名稱;burst = number表示超過了設(shè)置的速率以后,遺留的請(qǐng)求數(shù)量放到下一秒執(zhí)行;
- Default:—— 表示默認(rèn)沒有配置
- Context:http,server,location 表示需要在http塊或server塊或location塊中進(jìn)行配置
五、Nginx請(qǐng)求限制的配置演示
1、先創(chuàng)建是一個(gè)submodule.html頁(yè)面,上傳到/opt/app/html目錄下,以便配置好sub_module模塊編譯參數(shù)后訪問/opt/app/html目錄下的submodule.html頁(yè)面,查看替換的內(nèi)容。
submodule.html頁(yè)面
<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表示同一個(gè)客戶端地址發(fā)起的請(qǐng)求的存儲(chǔ)空間名稱 #1r/s 表示每秒一次 limit_req_zone $binary_remote_addr zone=req_zone:1m rate=1r/s;

4、在http塊的location塊中添加如下配置
#nginx連接請(qǐng)求限制的配置
location / {
root /opt/app/html;
limit_req zone=req_zone;
}

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

6、重新加載配置文件
[root@localhost /]# systemctl reload nginx

7、借助ab壓力測(cè)試工具做并發(fā)請(qǐng)求
ab壓力測(cè)試工具的安裝參考lz此博文鏈接:https://wwwxz.blog.csdn.net/article/details/118584751
#-n表示發(fā)起請(qǐng)求次數(shù),-c表示并發(fā)請(qǐng)求次數(shù) [root@localhost ~]# ab -n 20 -c 10 http://localhost/submodule.html

到此這篇關(guān)于nginx請(qǐng)求限制配置方法的文章就介紹到這了,更多相關(guān)nginx請(qǐng)求限制內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
啟動(dòng)Nginx.exe出現(xiàn)閃退問題的解決方案
在做項(xiàng)目時(shí),使用老師給的代碼,點(diǎn)擊Nginx.exe出現(xiàn)閃退的情況,出現(xiàn)這個(gè)問題可能出現(xiàn)的情況,端口號(hào)被占用或者logs下文件路徑有問題,所以本文小編給大家介紹了啟動(dòng)Nginx.exe出現(xiàn)閃退問題的解決方案,需要的朋友可以參考下2024-03-03
使用nginx搭建點(diǎn)播和直播流媒體服務(wù)器的方法步驟
本篇文章主要介紹了使用nginx搭建點(diǎn)播和直播流媒體服務(wù)器的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-03-03
nginx重寫rewrite基礎(chǔ)及實(shí)例分享
這篇文章主要介紹了nginx重寫rewrite基礎(chǔ)及實(shí)例分享,需要的朋友可以參考下2016-04-04
Windows下使用?Nginx?搭建?HTTP文件服務(wù)器?實(shí)現(xiàn)文件下載功能
Nginx?是一款輕量級(jí)的?HTTP?服務(wù)器,采用事件驅(qū)動(dòng)的異步非阻塞處理方式框架,這讓其具有極好的?IO?性能,時(shí)常用于服務(wù)端的反向代理和負(fù)載均衡,這篇文章主要介紹了Windows下使用?Nginx?搭建?HTTP文件服務(wù)器實(shí)現(xiàn)文件下載功能,需要的朋友可以參考下2023-03-03
權(quán)限問題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法
這篇文章主要介紹了權(quán)限問題導(dǎo)致Nginx 403 Forbidden錯(cuò)誤的解決方法,本文中導(dǎo)致 403 Forbidden錯(cuò)誤的原因是配置文件中沒有指明一個(gè)用戶,需要的朋友可以參考下2014-08-08

