最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2019年11月19日 10:09:43   作者:架構(gòu)師日刊  
Nginx自帶的模塊支持對并發(fā)請求數(shù)進行限制, 還有對請求來源進行限制。可以用來防止DDOS攻擊。這篇文章主要介紹了基于Nginx實現(xiàn)訪問控制、連接限制的相關(guān)資料,需要的朋友可以參考下

前言

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

1. 默認配置語法

nginx.conf作為主配置文件

include /etc/nginx/conf.d/*.conf讀到這會把該目錄的.conf也讀進來

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

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

1.2 event對事件的模塊

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

1.3 server

root 首頁的路徑
index 首頁默認訪問哪個頁面
error_page 500 502 503 504 /50x.html 錯誤頁面 前面的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 同時顯示狀態(tài)碼等信息
nginx -V #顯示nginx版本及配置文件等信息

3. 日志

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

error.log(記錄處理http請求的錯誤狀態(tài)以及nginx本身服務(wù)的錯誤狀態(tài))
access.log(每次http請求的訪問狀態(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請求。
配置語法:

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

limit_conn_zone會聲明一個zone空間來記錄連接狀態(tài), 才能限制數(shù)量。
zone是存儲連接狀態(tài)的空間, 以鍵值對存儲, 通常以客戶端地址$binary_remote_addr作為key來標識每一個連接。
zone空間被耗盡,服務(wù)器將會對后續(xù)所有的請求返回503(Service Temporarily Unavailable)錯誤。

請求限制 limit_req_mudule

limit_req_mudule:HTTP請求頻率限制, 一次TCP連接可以建立多次HTTP請求。
配置語法:

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

這里的zone也是用來存儲連接的一個空間。

burst 和 nodelay

burstnodelay對并發(fā)請求設(shè)置了一個緩沖區(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個請求, 正常響應(yīng)。
  • 1秒發(fā)送13個請求, 前10個請求正常響應(yīng), 后3個請求返回503(Service Temporarily Unavailable)

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

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

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

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

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

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

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

基于 IP 的訪問控制

http_access_module: 基于IP的訪問控制, 通過代理可以繞過限制, 防君子不防小人。

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

allow和deny會按照順序, 從上往下, 找到第一個匹配規(guī)則, 判斷是否允許訪問, 所以一般把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;
}

基于用戶密碼的訪問控制

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

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

密碼文件可以通過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實現(xiàn)訪問控制、連接限制,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Nginx配置之實現(xiàn)多臺服務(wù)器負載均衡

    Nginx配置之實現(xiàn)多臺服務(wù)器負載均衡

    這篇文章主要介紹了Nginx配置之實現(xiàn)多臺服務(wù)器負載均衡,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • Nginx 設(shè)置域名轉(zhuǎn)發(fā)到指定端口的實現(xiàn)方法

    Nginx 設(shè)置域名轉(zhuǎn)發(fā)到指定端口的實現(xiàn)方法

    這篇文章主要介紹了Nginx 設(shè)置域名轉(zhuǎn)發(fā)到指定端口的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-08-08
  • 騰訊云CentOS 6.6快速安裝 Nginx服務(wù)器圖文教程

    騰訊云CentOS 6.6快速安裝 Nginx服務(wù)器圖文教程

    本文通過圖文并茂的形式給大家介紹了騰訊云CentOS 6.6快速安裝 Nginx服務(wù)器的方法,介紹的非常詳細,具有參考借鑒價值,感興趣的朋友一起看看吧
    2016-09-09
  • nginx前后端同域名配置的方法實現(xiàn)

    nginx前后端同域名配置的方法實現(xiàn)

    這篇文章主要介紹了nginx前后端同域名配置的方法實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • Nginx反向代理如何到訪問者機器上(后端調(diào)試)

    Nginx反向代理如何到訪問者機器上(后端調(diào)試)

    這篇文章主要介紹了Nginx反向代理如何到訪問者機器上(后端調(diào)試),具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Nginx隱藏和偽造版本號的操作方法

    Nginx隱藏和偽造版本號的操作方法

    這篇文章主要介紹了Nginx隱藏和偽造版本號的操作方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-12-12
  • nginx?80端口配置多個location無效訪問404問題

    nginx?80端口配置多個location無效訪問404問題

    這篇文章主要介紹了nginx?80端口配置多個location無效訪問404問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • nginx ip黑名單動態(tài)封禁的例子

    nginx ip黑名單動態(tài)封禁的例子

    今天小編就為大家分享一篇nginx ip黑名單動態(tài)封禁的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • ELK與Grafana聯(lián)合打造可視化監(jiān)控來分析nginx日志

    ELK與Grafana聯(lián)合打造可視化監(jiān)控來分析nginx日志

    這篇文章主要為大家介紹了ELK與Grafana的聯(lián)合打造可視化監(jiān)控來分析nginx日志,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • Nginx啟動不了原因解決(端口占用)

    Nginx啟動不了原因解決(端口占用)

    本文主要介紹了Nginx啟動不了原因解決(端口占用),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-06-06

最新評論

余江县| 罗平县| 安徽省| 沧源| 深水埗区| 启东市| 漳浦县| 乌兰察布市| 揭西县| 周宁县| 凤城市| 德令哈市| 达孜县| 黄冈市| 营口市| 长阳| 弥勒县| 井冈山市| 镇江市| 油尖旺区| 湘阴县| 应用必备| 囊谦县| 阿克苏市| 威海市| 浮山县| 沅江市| 西青区| 乐业县| 高邑县| 即墨市| 马山县| 和田市| 辽中县| 竹溪县| 墨玉县| 临城县| 蒙城县| 宜城市| 个旧市| 格尔木市|