国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Nginx連接數(shù)、請(qǐng)求數(shù)限制應(yīng)用詳解

liuchengxu / 964人閱讀

摘要:指令說明當(dāng)超過限制后,返回的響應(yīng)狀態(tài)碼,默認(rèn)是,現(xiàn)在你就知道上面為什么會(huì)返回服務(wù)暫時(shí)不可用例子同時(shí)限制和虛擬主機(jī)最大并發(fā)連接根據(jù)請(qǐng)求參數(shù)來限制請(qǐng)求設(shè)置默認(rèn)值模塊的使用和模塊差不多,這里暫時(shí)不在講述,可查看官方文檔參考文檔

需求

秒殺、搶購并發(fā)限制、隊(duì)列緩沖

下載帶寬限制

防止攻擊

nginx連接數(shù)限制模塊
說明:nginx有很多模塊、模塊下面又分很多指令,下面就說說limit_conn_zone和limit_conn兩指令
1、limit_conn_zone

語法:

Syntax:     limit_conn_zone key zone=name:size;
Default:     —
Context:     http

nginx配置分為三個(gè)段:http、server、location,大概格式如下:

http {

    server {
        listen       80;
        server_name  www.tomener.com tomener.com;
        location / {
            root   /var/www/tomener;
            index  index.php index.html index.htm;
            set    $limit_key $binary_remote_addr;
            set    $limit_number 10;
        }
    }

}

nginx配置中可以設(shè)置變量,例如上面的$limit_key和$limit_number連個(gè)變量,后面是變量的值,好了這些都是對(duì)不太了解nginx配置的朋友的一些說明、具體可以搜索一下。

看上面的語法,limit_conn_zone只能用在http段,例如:

http {
    limit_conn_zone $binary_remote_addr zone=addr:10m;
    server {
        listen       80;
        server_name  www.tomener.com tomener.com;
        location / {
            root   /var/www/tomener;
            index  index.php index.html index.htm;
            limit_conn addr 5; #是限制每個(gè)IP只能發(fā)起5個(gè)連接
            limit_rate 100k; #限速為 100KB/秒
        }
    }
}

分析:
Syntax: limit_conn_zone key zone=name:size;

對(duì)于關(guān)系:
key => $binary_remote_addr #二進(jìn)制的IP地址
name => addr #隨便取的一個(gè)名字,比如,你可以取成abc
size => 10m #空間大小,這里是10兆
一個(gè)二進(jìn)制的ip地址在32位機(jī)器上占用32個(gè)字節(jié),在64位機(jī)器上占用63個(gè)字節(jié),那么10M可以存放多少呢,計(jì)算一下,10x1024x1024/32 = 327680,意思就是可以存放326780個(gè)ip地址(32位),64位可以存放163840個(gè)ip

1、key:鍵,可以說是一個(gè)規(guī)則,就是對(duì)客服端連接的一個(gè)標(biāo)識(shí),比如上面用的是IP地址,比如我們可以用$query_string,例如:/index.php?mp=138944093953,那我們就可以根據(jù)mp的值來限制連接數(shù),更多的nginx內(nèi)置變量請(qǐng)查看http://nginx.org/en/docs/varindex.html

2、zone:共享內(nèi)存空間,作用:保存每個(gè)key對(duì)應(yīng)的連接數(shù)

3、size:共享內(nèi)存空間大小,如1M、10M、100K

當(dāng)共享內(nèi)存空間被耗盡,服務(wù)器將會(huì)對(duì)后續(xù)所有的請(qǐng)求返回 503 (Service Temporarily Unavailable) 錯(cuò)誤

limit_conn指令
Syntax:     limit_conn zone number;
Default:     —
Context:     http, server, location

限制每個(gè)name對(duì)應(yīng)客服端的連接數(shù),比如上面的limit_conn addr 5;意思就是現(xiàn)在addr這個(gè)name對(duì)應(yīng)的客服端的連接數(shù),比如name對(duì)應(yīng)的是45.168.68.202這個(gè)ip地址,那么這個(gè)ip最多有5個(gè)并發(fā)連接,那什么并發(fā)呢?像這樣的連接,請(qǐng)求到達(dá)并已經(jīng)讀取了請(qǐng)求頭信息到響應(yīng)頭信息發(fā)送完畢,在這個(gè)過程中的連接,當(dāng)一個(gè)客服端的并發(fā)連接達(dá)到我們?cè)O(shè)置的5個(gè)以上時(shí),會(huì)返回503 (Service Temporarily Unavailable) 錯(cuò)誤

這里,小伙伴對(duì)這個(gè)zone估計(jì)還是有一些疑問,有疑問可以在下面評(píng)論,大家一起討論,比如,有人可能會(huì)問,一個(gè)客服端占用5個(gè),那么327680只能容納65536個(gè)客服端,那么第65537個(gè)客服端就會(huì)返回503錯(cuò)誤

limit_conn_log_level指令
Syntax:     limit_conn_log_level info | notice | warn | error;
Default:     limit_conn_log_level error;
Context:     http, server, location

說明:當(dāng)達(dá)到最大限制連接數(shù)后,記錄日志的等級(jí)。

limit_conn_status指令
Syntax:     limit_conn_status code;
Default:     limit_conn_status 503;
Context:     http, server, location

說明:當(dāng)超過限制后,返回的響應(yīng)狀態(tài)碼,默認(rèn)是503,現(xiàn)在你就知道上面為什么會(huì)返回503(Service Temporarily Unavailable)服務(wù)暫時(shí)不可用

例子:

1、同時(shí)限制ip和虛擬主機(jī)最大并發(fā)連接

http {
    limit_conn_zone $binary_remote_addr zone=perip:10m;
    limit_conn_zone $server_name zone=perserver:10m;
    server {
        location / {
            limit_conn perip 10;
            limit_conn perserver 1000;
        }
    }
}

2、根據(jù)請(qǐng)求參數(shù)來限制

#請(qǐng)求:http://www.tomener.com/item.html?mp=1967464354&id=43566929485
limit_conn_zone $mp_limit_key zone=mp:10m;

server {

    set $mp_limit_key $binary_remote_addr; #key設(shè)置默認(rèn)值
    if ( $query_string ~ .*mp=(d+).* ) {
        set $mp_limit_key $1;
    }
    location / {
        limit_conn mp 10;
    }
}
ngx_http_limit_req_module limit_req_zone
Syntax:     limit_req_zone key zone=name:size rate=rate;
Default:     —
Context:     http

ngx_http_limit_req_module模塊的使用和ngx_http_limit_conn_module模塊差不多,這里暫時(shí)不在講述,可查看官方文檔:
http://nginx.org/en/docs/http/ngx_http_limit_req_module.html

參考文檔:

https://www.ttlsa.com/nginx/nginx-limited-connection-number-ngx_http_limit_conn_module-module/

https://www.ttlsa.com/nginx/nginx-limiting-the-number-of-requests-ngx_http_limit_req_module-module/

http://blog.csdn.net/shootyou/article/details/46813967

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/39259.html

相關(guān)文章

  • nginx 配置文件詳解

    摘要:定義運(yùn)行的用戶和用戶組進(jìn)程數(shù),建議設(shè)置為等于總核心數(shù)。開啟限制連接數(shù)的時(shí)候需要使用的負(fù)載均衡,是權(quán)重,可以根據(jù)機(jī)器配置定義權(quán)重。本地動(dòng)靜分離反向代理配置所有的頁面均交由或處理所有靜態(tài)文件由直接讀取不經(jīng)過或 定義Nginx運(yùn)行的用戶和用戶組 user www www; nginx進(jìn)程數(shù),建議設(shè)置為等于CPU總核心數(shù)。 worker_processes 8; 全局錯(cuò)誤日志定義類型,[ de...

    import. 評(píng)論0 收藏0
  • nginx 配置文件詳解

    摘要:定義運(yùn)行的用戶和用戶組進(jìn)程數(shù),建議設(shè)置為等于總核心數(shù)。開啟限制連接數(shù)的時(shí)候需要使用的負(fù)載均衡,是權(quán)重,可以根據(jù)機(jī)器配置定義權(quán)重。本地動(dòng)靜分離反向代理配置所有的頁面均交由或處理所有靜態(tài)文件由直接讀取不經(jīng)過或 定義Nginx運(yùn)行的用戶和用戶組 user www www; nginx進(jìn)程數(shù),建議設(shè)置為等于CPU總核心數(shù)。 worker_processes 8; 全局錯(cuò)誤日志定義類型,[ de...

    Youngs 評(píng)論0 收藏0
  • Nginx 配置文件 nginx.conf 詳解

    摘要:定義運(yùn)行的用戶和用戶組如果所有用戶和用戶組不相符可以使用命令進(jìn)程數(shù),建議設(shè)置為等于總核心數(shù)。注意如果圖片顯示不正常把這個(gè)改成。本地動(dòng)靜分離反向代理配置所有的頁面均交由或處理所有靜態(tài)文件由直接讀取不經(jīng)過或 定義Nginx運(yùn)行的用戶和用戶組 user www www; //如果所有用戶和用戶組不相符 可以使用chown命令 nginx進(jìn)程數(shù),建議設(shè)置為等于CPU總核心數(shù)。 worker_p...

    stormjun 評(píng)論0 收藏0
  • nginx配置文件詳解(轉(zhuǎn)載)

    摘要:轉(zhuǎn)載自北京流浪兒自己加了隱藏入口文件的配置定義運(yùn)行的用戶和用戶組進(jìn)程數(shù),建議設(shè)置為等于總核心數(shù)。開啟目錄列表訪問,合適下載服務(wù)器,默認(rèn)關(guān)閉。本地動(dòng)靜分離反向代理配置所有的頁面均交由或處理所有靜態(tài)文件由直接讀取不經(jīng)過或 轉(zhuǎn)載自北京流浪兒自己加了隱藏入口文件的配置 #定義Nginx運(yùn)行的用戶和用戶組 user www www; #nginx進(jìn)程數(shù),建議設(shè)置為等于CPU總核心數(shù)。 wor...

    songze 評(píng)論0 收藏0
  • Nginx 配置文件詳解

    摘要:每個(gè)打開文件描述符的最大數(shù)量限制。多長時(shí)間檢查一次緩存的有效信息指令中的參數(shù)時(shí)間內(nèi)文件的最少使用次數(shù),如果超過這個(gè)數(shù)字,文件描述符一直是在緩存中打開的。如果沒有匹配的,則默認(rèn)使用配置文件中第一個(gè)。 頂級(jí)配置 #定義 Nginx 運(yùn)行的用戶和用戶組 user nginx; #進(jìn)程文件 pid /var/run/nginx.pid; #錯(cuò)誤日志位置和級(jí)別,debug、info、not...

    fjcgreat 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

閱讀需要支付1元查看
<