Nginx基於客戶端請求頭的訪問分類

nginx_web發表於2012-06-15

 

 

   Nginx0.8.37版本開始提供一個叫做ngx_http_split_clients_module模組,由該模組的功能從它名字就很容易看出,因此,它的功能就是用基於某些條件(例如,IP地址、頭、cookie,等等)將客戶端訪問的資源分開。

   

配置示例

 

http {

    split_clients "${remote_addr}AAA" $variant {

        0.5% .one;

        2.0% .two;

        * "";

    }

 

    server {

        location / {

             index index${variant}.html;

 

   

   

 

    該模組只提供了1條命令。

 

指令名稱:split_clients

    能:該指令用於對雜湊源資料計算,從1.0.1版本之後的Nginx,該指令對源字串進行計算時使用的不再是CRC32,而使用改為使用MurmurHash2演算法,然後會根據雜湊的百分比作為員的值。

    : split_clients  source_hash  $variable { ... }

默 認 值: none

使用環境: http

 

   

 

    該模組提供了一個變數,那就是$variant

 

變數名稱:$variant

    能:通過它的值就會代表著訪問者最終訪問的去處。

 

使用例項

 

    Nginx伺服器的配置檔案中新增以下配置內容:

 

http {

  include       mime.types;

  default_type  application/octet-stream;

 

  sendfile           on;

 

  keepalive_timeout  65;

 

  log_format custom $time_local | $server_name | $request_length | $bytes_sent | $remote_addr | $variant;

 

  split_clients  "${remote_addr}"   $variant {

    10% .1;

    20% .2;

    30% .4; 40% .5;

     *  "";

    }

 

  server {

    listen       80;

    server_name  www.xx.com;

 

    access_log logs/custom.log custom;

 

location / {

      root   html;

      index index${variant}.html;

}

 

    ……

}

   

Nginxweb目錄結構:   

 

[root@mail html]# tree -L 1

.

|-- member

|-- simg0

|-- upload

   ……

|-- files

|-- index.html

|-- index.1.html

|-- index.2.html

|-- index.3.html

|-- index.4.html

`-- index.5.html

 

                 

8 directories, 12 files

 

我們看監控一下Nginx的訪問日誌

 

[root@mail logs]# tail -f  custom.log

03/Sep/2011:12:15:41 +0800|www.xx.com|321|887|100.100.170.248|.4

03/Sep/2011:12:15:46 +0800|www.xx.com|319|887|192.168.3.248|.5

03/Sep/2011:12:16:00 +0800|www.xx.com|615|389|61.135.169.106|.2

03/Sep/2011:12:18:27 +0800|www.xx.com|565|389|23.123.123.128|.2

03/Sep/2011:12:19:26 +0800|www.xx.com|563|887|192.168.1.164|.4

03/Sep/2011:12:20:09 +0800|www.xx.com|563|887|192.168.4.88|.5

03/Sep/2011:12:24:11 +0800|www.xx.com|566|887|119.184.137.242|.5

03/Sep/2011:12:25:13 +0800|www.xx.com|566|887|173.242.125.196|.5

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27043155/viewspace-732986/,如需轉載,請註明出處,否則將追究法律責任。

相關文章