一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

nginx定制header返回信息模塊ngx

 waitingnothing 2017-02-13

一. 介紹ngx_headers_more

ngx_headers_more 用于添加、設(shè)置和清除輸入和輸出的頭信息。nginx源碼沒有包含該模塊,需要另行添加。

該模塊是ngx_http_headers_module模塊的增強(qiáng)版,提供了更多的實(shí)用工具,比如復(fù)位或清除內(nèi)置頭信息,如Content-Type, Content-Length, 和Server。

可以允許你使用-s選項(xiàng)指定HTTP狀態(tài)碼,使用-t選項(xiàng)指定內(nèi)容類型,通過more_set_headers 和 more_clear_headers 指令來修改輸出頭信息。如:

1
more_set_headers -s 404 -t 'text/html' 'X-Foo: Bar';

輸入頭信息也可以這么修改,如:

1
2
3
4
5
location /foo {
    more_set_input_headers 'Host: foo' 'User-Agent: faked';
    # now $host, $http_host, $user_agent, and
    #   $http_user_agent all have their new values.
}

-t選項(xiàng)也可以在more_set_input_headers和more_clear_input_headers指令中使用。

不像標(biāo)準(zhǔn)頭模塊,該模塊的指示適用于所有的狀態(tài)碼,包括4xx和5xx的。 add_header只適用于200,201,204,206,301,302,303,304,或307。

標(biāo)準(zhǔn)頭模塊ngx_http_headers_module參見:《ngx_http_headers_module模塊add_header和expires指令

二. 安裝ngx_headers_more

1
2
3
4
5
6
7
8
9
10
wget 'http:///download/nginx-1.5.8.tar.gz'
tar -xzvf nginx-1.5.8.tar.gz
cd nginx-1.5.8/
# Here we assume you would install you nginx under /opt/nginx/.
./configure --prefix=/opt/nginx \
    --add-module=/path/to/headers-more-nginx-module
make
make install

ngx_headers_more 包下載地址:http://github.com/agentzh/headers-more-nginx-module/tags

ngx_openresty包含該模塊。

三. 指令說明

more_set_headers

語法:more_set_headers [-t <content-type list>]... [-s <status-code list>]... <new-header>...

默認(rèn)值:no

配置段:http, server, location, location if

階段:輸出報(bào)頭過濾器

替換(如有)或增加(如果不是所有)指定的輸出頭時(shí)響應(yīng)狀態(tài)代碼與-s選項(xiàng)相匹配和響應(yīng)的內(nèi)容類型的-t選項(xiàng)指定的類型相匹配的。

如果沒有指定-s或-t,或有一個(gè)空表值,無需匹配。因此,對(duì)于下面的指定,任何狀態(tài)碼和任何內(nèi)容類型都講設(shè)置。

1
more_set_headers    'Server: my_server';

具有相同名稱的響應(yīng)頭總是覆蓋。如果要添加頭,可以使用標(biāo)準(zhǔn)的add_header指令代替。

單個(gè)指令可以設(shè)置/添加多個(gè)輸出頭。如:

1
more_set_headers 'Foo: bar' 'Baz: bah';

在單一指令中,選項(xiàng)可以多次出現(xiàn),如:

1
more_set_headers -s 404 -s '500 503' 'Foo: bar';

等同于:

1
more_set_headers -s '404 500 503' 'Foo: bar';

新的頭是下面形式之一:

  1. Name: Value
  2. Name:
  3. Name

最后兩個(gè)有效清除的頭名稱的值。Nginx的變量允許是頭值,如:

1
2
set $my_var 'dog';
more_set_headers 'Server: $my_var';

注意:more_set_headers允許在location的if塊中,但不允許在server的if塊中。下面的配置就報(bào)語法錯(cuò)誤:

1
2
3
4
5
6
7
# This is NOT allowed!
  server {
        if ($args ~ 'download') {
           more_set_headers 'Foo: Bar';
        }
       ...
   }

more_clear_headers

語法:more_clear_headers [-t <content-type list>]... [-s <status-code list>]... <new-header>...

默認(rèn)值:no

配置段:http, server, location, location if

階段:輸出報(bào)頭過濾器

清除指定的輸出頭。

1
2
3
4
5
more_clear_headers -s 404 -t 'text/plain' Foo Baz;
等同于
more_set_headers -s 404 -t 'text/plain' 'Foo: ' 'Baz: ';
more_set_headers -s 404 -t 'text/plain' Foo Baz

也可以使用通配符*,如:

1
more_clear_headers 'X-Hidden-*';

清除開始由“X-Hidden-”任何輸出頭。

more_set_input_headers

語法:more_set_input_headers [-r] [-t <content-type list>]... <new-header>...

默認(rèn)值:no

配置段:http, server, location, location if

階段: rewrite tail

非常類似more_set_headers,不同的是它工作在輸入頭(或請(qǐng)求頭),它僅支持-t選項(xiàng)。

注意:使用-t選項(xiàng)的是過濾請(qǐng)求頭的Content-Type,而不是響應(yīng)頭的。

more_clear_input_headers

語法:more_clear_input_headers [-t <content-type list>]... <new-header>...

默認(rèn)值:no

配置段:http, server, location, location if

階段: rewrite tail

清除指定輸入頭。如:

1
2
3
4
5
more_clear_input_headers -s 404 -t 'text/plain' Foo Baz;
等同于
more_set_input_headers -s 404 -t 'text/plain' 'Foo: ' 'Baz: ';
more_set_input_headers -s 404 -t 'text/plain' Foo Baz

四. ngx_headers_more局限性

1. 不同于標(biāo)準(zhǔn)頭模塊,該模塊不會(huì)對(duì)下面頭有效: Expires, Cache-Control, 和Last-Modified。

2. 使用此模塊無法刪除Connection的響應(yīng)報(bào)頭。唯一方法是更改src/ HTTP/ ngx_http_header_filter_module.c文件。

五. 使用ngx_headers_more

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# set the Server output header
more_set_headers 'Server: my-server';
# set and clear output headers
location /bar {
    more_set_headers 'X-MyHeader: blah' 'X-MyHeader2: foo';
    more_set_headers -t 'text/plain text/css' 'Content-Type: text/foo';
    more_set_headers -s '400 404 500 503' -s 413 'Foo: Bar';
    more_clear_headers 'Content-Type';
    # your proxy_pass/memcached_pass/or any other config goes here...
}
# set output headers
location /type {
    more_set_headers 'Content-Type: text/plain';
    # ...
}
# set input headers
location /foo {
    set $my_host 'my dog';
    more_set_input_headers 'Host: $my_host';
    more_set_input_headers -t 'text/plain' 'X-Foo: bah';
    # now $host and $http_host have their new values...
    # ...
}
# replace input header X-Foo *only* if it already exists
more_set_input_headers -r 'X-Foo: howdy';

六. 應(yīng)用ngx_headers_more

修改web服務(wù)器是什么軟件,什么版本,同時(shí)隱藏Centent-Type、Accept-Range、Content-Length頭信息。

add_header

1
2
3
4
more_set_headers 'Server: Web Server';
more_clear_headers 'Content-Type:';
more_clear_headers 'Accept-Ranges: ';
more_clear_headers 'Content-Length: ';

add_header

404狀態(tài)碼添加header

配置如下:

1
2
3
4
5
more_set_headers 'Server: Web Server';
more_set_headers -s 404 'Error: Not found';
more_clear_headers 'Content-Type:';
more_clear_headers 'Accept-Ranges: ';
more_clear_headers 'Content-Length: ';

add_header

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产精品香蕉一级免费| 中文字幕人妻av不卡| 偷拍洗澡一区二区三区| 老司机精品国产在线视频| 日韩精品中文字幕亚洲| 好吊视频有精品永久免费| 十八禁日本一区二区三区| 欧美区一区二在线播放| 亚洲一区二区三区四区性色av| 九九热国产这里只有精品 | 色偷偷偷拍视频在线观看| 国产精品午夜福利在线观看| 国产亚洲中文日韩欧美综合网| 亚洲黄香蕉视频免费看| 亚洲av成人一区二区三区在线| 五月婷婷六月丁香在线观看| 日韩一级毛一欧美一级乱| 免费在线播放一区二区| 色婷婷视频在线精品免费观看 | 日韩中文字幕在线不卡一区| 久久黄片免费播放大全| 在线观看视频成人午夜| 日韩黄色一级片免费收看| 国产日韩精品激情在线观看| 亚洲性日韩精品一区二区| 日韩精品视频免费观看| 国产精品一区二区传媒蜜臀| 黄色在线免费高清观看| 欧美日韩国产精品自在自线| 国产亚洲视频香蕉一区| 午夜久久精品福利视频| 精品人妻一区二区三区四在线| 精品欧美日韩一区二区三区| 樱井知香黑人一区二区| 中文字幕日韩精品人一妻| 日韩人妻一区二区欧美| 九九热精品视频在线观看| 国产成人精品一区在线观看| 日本东京热视频一区二区三区| 欧美黑人巨大一区二区三区 | 国产欧美日韩在线一区二区|