婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁(yè) > 知識(shí)庫(kù) > 基于Nginx實(shí)現(xiàn)訪問(wèn)控制、連接限制

基于Nginx實(shí)現(xiàn)訪問(wèn)控制、連接限制

熱門(mén)標(biāo)簽:代理外呼系統(tǒng)創(chuàng)業(yè) 400電話申請(qǐng)知乎 大連電銷外呼系統(tǒng)運(yùn)營(yíng)商 泰州智能外呼系統(tǒng)排名 長(zhǎng)春電銷外呼系統(tǒng)代理商 百度地圖標(biāo)注尺寸無(wú)法顯示 接電話機(jī)器人罵人 外呼系統(tǒng)虛擬號(hào)碼 400電話干嘛怎么申請(qǐng)信用卡

前言

Nginx自帶的模塊支持對(duì)并發(fā)請(qǐng)求數(shù)進(jìn)行限制, 還有對(duì)請(qǐng)求來(lái)源進(jìn)行限制。可以用來(lái)防止DDOS攻擊。
閱讀本文須知道nginx的配置文件結(jié)構(gòu)和語(yǔ)法。

1. 默認(rèn)配置語(yǔ)法

nginx.conf作為主配置文件

include /etc/nginx/conf.d/*.conf讀到這會(huì)把該目錄的.conf也讀進(jìn)來(lái)

1.1 全局性的和服務(wù)級(jí)別的

user 設(shè)置使用用戶
worker_processes 進(jìn)行增大并發(fā)連接數(shù)的處理 跟cpu保持一致 八核設(shè)置八個(gè)
error_log nginx的錯(cuò)誤日志
pid nginx服務(wù)啟動(dòng)時(shí)候pid

1.2 event對(duì)事件的模塊

worker_connections一個(gè)進(jìn)程允許處理的最大連接數(shù)
use定義使用的內(nèi)核模型

1.3 server

root 首頁(yè)的路徑
index 首頁(yè)默認(rèn)訪問(wèn)哪個(gè)頁(yè)面
error_page 500 502 503 504 /50x.html 錯(cuò)誤頁(yè)面 前面的500是**`http狀態(tài)碼`**
systemctl restart nginx.service 重啟nginx
systemctl reload nginx.service 不關(guān)閉服務(wù)柔和地重啟

2. HTTP

curl-v http://www.baidu.com >/dev/null #-v 同時(shí)顯示狀態(tài)碼等信息
nginx -V #顯示nginx版本及配置文件等信息

3. 日志

日志類型:error.log和access.log

error.log(記錄處理http請(qǐng)求的錯(cuò)誤狀態(tài)以及nginx本身服務(wù)的錯(cuò)誤狀態(tài))
access.log(每次http請(qǐng)求的訪問(wèn)狀態(tài))

log_format:設(shè)置了日志的記錄格式,定義日志以什么樣的樣式記錄到error.log、access.log中,log_format的配置只能配置在http模塊中。

access_log配置在http中。

4. 變量

連接限制 limit_conn_module

limit_conn_module:TCP連接頻率限制, 一次TCP連接可以建立多次HTTP請(qǐng)求。
配置語(yǔ)法:

limit_conn_module語(yǔ)法 范圍 說(shuō)明
limit_conn_zone 標(biāo)識(shí) zone=空間名:空間大小; http 用于聲明一個(gè)存儲(chǔ)空間
limit_conn 空間名 并發(fā)限制數(shù); http、server或location 用于限制某個(gè)存儲(chǔ)空間的并發(fā)數(shù)量
limit_conn_log_level 日志等級(jí); http、server或location 當(dāng)達(dá)到最大限制連接數(shù)后, 記錄日志的等級(jí)
limit_conn_status 狀態(tài)碼; http、server或location 當(dāng)超過(guò)限制后,返回的響應(yīng)狀態(tài)碼,默認(rèn)是503

limit_conn_zone會(huì)聲明一個(gè)zone空間來(lái)記錄連接狀態(tài), 才能限制數(shù)量。
zone是存儲(chǔ)連接狀態(tài)的空間, 以鍵值對(duì)存儲(chǔ), 通常以客戶端地址$binary_remote_addr作為key來(lái)標(biāo)識(shí)每一個(gè)連接。
當(dāng)zone空間被耗盡,服務(wù)器將會(huì)對(duì)后續(xù)所有的請(qǐng)求返回503(Service Temporarily Unavailable)錯(cuò)誤。

請(qǐng)求限制 limit_req_mudule

limit_req_mudule:HTTP請(qǐng)求頻率限制, 一次TCP連接可以建立多次HTTP請(qǐng)求。
配置語(yǔ)法:

limit_req_mudule語(yǔ)法 范圍 說(shuō)明
limit_req_zone key zone=空間名:空間大小 rate=每秒請(qǐng)求數(shù); http 用于聲明一個(gè)存儲(chǔ)空間
limit_req zone=空間名 [burst=隊(duì)列數(shù)] [nodelay]; http、server或location 用于限制某個(gè)存儲(chǔ)空間的并發(fā)數(shù)量

這里的zone也是用來(lái)存儲(chǔ)連接的一個(gè)空間。

burst 和 nodelay

burstnodelay對(duì)并發(fā)請(qǐng)求設(shè)置了一個(gè)緩沖區(qū)和是否延遲處理的策略。
先假設(shè)有如下zone配置。

http {
 limit_req_zone $binan_remote_addr zone=req_zone:1m rate=10r/s;
}

情況 1:limit_req zone=req_zone;

  • 1秒發(fā)送10個(gè)請(qǐng)求, 正常響應(yīng)。
  • 1秒發(fā)送13個(gè)請(qǐng)求, 前10個(gè)請(qǐng)求正常響應(yīng), 后3個(gè)請(qǐng)求返回503(Service Temporarily Unavailable)

不加brustnodelay的情況下,rate=10r/s每秒只能執(zhí)行10次請(qǐng)求, 多的直接返回503錯(cuò)誤。

情況 2:limit_req zone=req_zone brust=5;

  • 1秒發(fā)送10個(gè)請(qǐng)求, 正常響應(yīng)。
  • 1秒發(fā)送13個(gè)請(qǐng)求, 前10個(gè)請(qǐng)求正常響應(yīng), 后3個(gè)請(qǐng)求放入brust等待響應(yīng)。
  • 1秒發(fā)送20個(gè)請(qǐng)求, 前10個(gè)請(qǐng)求正常響應(yīng), 后5個(gè)請(qǐng)求放入brust等待響應(yīng), 最后5個(gè)請(qǐng)求返回503(Service Temporarily Unavailable), 第2秒執(zhí)行brust中的5個(gè)請(qǐng)求。
  • 1秒發(fā)送20個(gè)請(qǐng)求, 前10個(gè)請(qǐng)求正常響應(yīng), 后5個(gè)請(qǐng)求放入brust等待響應(yīng), 最后5個(gè)請(qǐng)求返回503(Service Temporarily Unavailable), 第2秒發(fā)送6個(gè)請(qǐng)求, 執(zhí)行brust中的5個(gè)請(qǐng)求, 將5個(gè)請(qǐng)求放入brust等待響應(yīng), 剩下的1個(gè)請(qǐng)求返回503(Service Temporarily Unavailable)

brust=5不加nodelay的情況下, 有一個(gè)容量為5的緩沖區(qū),rate=10r/s每秒只能執(zhí)行10次請(qǐng)求, 多的放到緩沖區(qū)中, 如果緩沖區(qū)滿了, 就直接返回503錯(cuò)誤。而緩沖區(qū)在下一個(gè)時(shí)間段會(huì)取出請(qǐng)求進(jìn)行響應(yīng), 如果還有請(qǐng)求進(jìn)來(lái), 則繼續(xù)放緩沖區(qū), 多的就返回503錯(cuò)誤。

情況 3:limit_req zone=req_zone brust=5 nodelay;

  • 1秒發(fā)送10個(gè)請(qǐng)求, 正常響應(yīng)。
  • 1秒發(fā)送13個(gè)請(qǐng)求,13個(gè)請(qǐng)求正常響應(yīng)。
  • 1秒發(fā)送20個(gè)請(qǐng)求, 前15個(gè)請(qǐng)求正常響應(yīng), 后5個(gè)請(qǐng)求返回503(Service Temporarily Unavailable)
  • 1秒發(fā)送20個(gè)請(qǐng)求, 前15個(gè)請(qǐng)求正常響應(yīng), 后5個(gè)請(qǐng)求返回503(Service Temporarily Unavailable), 第2秒發(fā)送6個(gè)請(qǐng)求, 正常響應(yīng)。

brust=5nodelay的情況下, 有一個(gè)容量為5的緩沖區(qū),rate=10r/s每秒能執(zhí)行15次請(qǐng)求,15=10+5。多的直接返回503錯(cuò)誤。

基于 IP 的訪問(wèn)控制

http_access_module: 基于IP的訪問(wèn)控制, 通過(guò)代理可以繞過(guò)限制, 防君子不防小人。

http_access_module語(yǔ)法 范圍 說(shuō)明
allow IP地址 | CIDR網(wǎng)段 | unix: | all; http、server、location和limit_except 允許IP地址、CIDR格式的網(wǎng)段、unix套接字或所有來(lái)源訪問(wèn)
deny IP地址 | CIDR網(wǎng)段 | unix: | all; http、server、location和limit_except 禁止IP地址、CIDR格式的網(wǎng)段、unix套接字或所有來(lái)源訪問(wèn)

allow和deny會(huì)按照順序, 從上往下, 找到第一個(gè)匹配規(guī)則, 判斷是否允許訪問(wèn), 所以一般把all放最后

location / {
 deny 192.168.1.1;
 allow 192.168.1.0/24;
 allow 10.1.1.0/16;
 allow 2001:0db8::/32;
 deny all;
}

基于用戶密碼的訪問(wèn)控制

http_auth_basic_module: 基于文件匹配用戶密碼的登錄

http_auth_basic_module語(yǔ)法 范圍 說(shuō)明
auth_basic 請(qǐng)輸入你的帳號(hào)密碼 | off; http、server、location和limit_except 顯示用戶登錄提示 (有些瀏覽器不顯示提示)
auth_basic_user_file 存儲(chǔ)帳號(hào)密碼的文件路徑; http、server、location和limit_except 從文件中匹配帳號(hào)密碼

密碼文件可以通過(guò)htpasswd生成,htpasswd需要安裝yum install -y httpd-tools

# -c 創(chuàng)建新文件, -b在參數(shù)中直接輸入密碼
$ htpasswd -bc /etc/nginx/conf.d/passwd user1 pw1
Adding password for user user1
$ htpasswd -b /etc/nginx/conf.d/passwd user2 pw2
Adding password for user user2
$ cat /etc/nginx/conf.d/passwd 
user1:$apr1$7v/m0.IF$2kpM9NVVxbAv.jSUvUQr01
user2:$apr1$XmoO4Zzy$Df76U0Gzxbd7.5vXE0UsE0

參考資料

limit_conn_module

limit_req_mudule

http_access_module

http_auth_basic_module

總結(jié)

以上所述是小編給大家介紹的基于Nginx實(shí)現(xiàn)訪問(wèn)控制、連接限制,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

標(biāo)簽:興安盟 中衛(wèi) 大慶 臺(tái)灣 安陽(yáng) 雅安 長(zhǎng)治 清遠(yuǎn)

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《基于Nginx實(shí)現(xiàn)訪問(wèn)控制、連接限制》,本文關(guān)鍵詞  基于,Nginx,實(shí)現(xiàn),訪問(wèn),控制,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《基于Nginx實(shí)現(xiàn)訪問(wèn)控制、連接限制》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于基于Nginx實(shí)現(xiàn)訪問(wèn)控制、連接限制的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 油尖旺区| 庄河市| 龙山县| 营山县| 夏河县| 建德市| 金沙县| 晴隆县| 怀远县| 湘潭县| 如皋市| 九龙坡区| 阳城县| 余江县| 泰兴市| 金华市| 华容县| 富阳市| 南漳县| 万年县| 普兰店市| 蕉岭县| 湘阴县| 德清县| 贵溪市| 福建省| 扶沟县| 涟源市| 乌兰县| 南川市| 武清区| 宁夏| 湖南省| 泰来县| 内乡县| 舒兰市| 两当县| 元朗区| 天等县| 邵阳市| 宝应县|