Nginx 使用 ngx_headers_more 模块来增加、删除出站、入站的 Header 信息。
ngx_headers_more 项目主页
默认该模块没有加入到 Nginx 的源码中,要想使用相关功能需要在编译 Nginx 时加入该模块。
本人服务器中的 Nginx 在编译时没有加入该模块,使用 -V 查看当前 Nginx 的编译参数:
1 2 3 4 5 6 7 8 | [ root @ z – dig ~ ] # nginx -V nginx version : www . z – dig . com built by gcc 4.4.7 20120313 ( Red Hat 4.4.7 – 16 ) ( GCC ) built with Open ssl 1.0.1e – fips 11 Feb 2013 TLS SNI support enabled configure arguments : — prefix = / usr / local / nginx — user = www — group = www \ — with – http_ssl_module — with – http_stub_status _module [ root @ z – dig ~ ] # |
从官网下载模块:
1 2 3 4 | [ root @ z – dig ~ ] # cd /usr/local/src/ [ root @ z – dig src ] # wget 、https://codeload.github.com/openresty/headers-more-nginx-module/zip/master\ – O . / headers – more – nginx – module – master . zip [ root @ z – dig src ] # unzip headers-more-nginx-module-master.zip |
重新编译 Nginx 前,请求 www.trustauth.cn 的 Header 信息:
1 2 3 4 5 6 7 8 9 10 11 12 | [ root @ KVM ~ ] # curl -I www.trustauth.cn HTTP / 1.1 200 OK Server : www . z – dig . com Date : Sat , 23 Apr 2016 11 : 25 : 15 GMT Content – Type : text / html ; charset = UTF – 8 Connection : keep – alive X – Powered – By : PHP / 5.6.17 Vary : Accept – Encoding , Cookie Cache – Control : max – age = 3 , must – revalidate WP – Super – Cache : Served supercache file from PHP [ root @ KVM ~ ] # |
现在重新编译 Nginx ,平滑更新:
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 | [ root @ z – dig ~ ] # cd /usr/local/src/nginx [ root @ z – dig nginx ] # make clean rm – rf Makefile objs [ root @ z – dig nginx ] #./configure –prefix=/usr/local/nginx –user=www –group=www \ — with – http_ssl_module — with – http_stub_status _module \ — add – module = / usr / local / src / headers – more – nginx – module – master [ root @ z – dig nginx ] # make [ root @ z – dig nginx ] # make install [ root @ z – dig nginx ] # kill -s USR2 `cat /usr/local/nginx/logs/nginx.pid` [ root @ z – dig nginx ] # ps -ef|grep nginx root 2017 1 0 Apr21 ? 00 : 00 : 00 nginx : master process / usr / local / nginx / sbin / nginx www 2018 2017 0 Apr21 ? 00 : 00 : 30 nginx : worker process root 21717 2017 0 19 : 41 ? 00 : 00 : 00 nginx : master process / usr / local / nginx / sbin / nginx www 21718 21717 0 19 : 41 ? 00 : 00 : 00 nginx : worker process root 21856 18312 0 19 : 45 pts / 2 00 : 00 : 00 grep nginx [ root @ z – dig nginx ] # kill -s WINCH `cat /usr/local/nginx/logs/nginx.pid.oldbin` [ root @ z – dig nginx ] # ps -ef|grep nginx root 2017 1 0 Apr21 ? 00 : 00 : 00 nginx : master process / usr / local / nginx / sbin / nginx root 21717 2017 0 19 : 41 ? 00 : 00 : 00 nginx : master process / usr / local / nginx / sbin / nginx www 21718 21717 0 19 : 41 ? 00 : 00 : 00 nginx : worker process root 21943 18312 0 19 : 49 pts / 2 00 : 00 : 00 grep nginx [ root @ z – dig nginx ] # kill -s QUIT `cat /usr/local/nginx/logs/nginx.pid.oldbin` [ root @ z – dig nginx ] # ps -ef|grep nginx root 21717 1 0 19 : 41 ? 00 : 00 : 00 nginx : master process / usr / local / nginx / sbin / nginx www 21718 21717 0 19 : 41 ? 00 : 00 : 00 nginx : worker process root 22050 18312 0 19 : 54 pts / 2 00 : 00 : 00 grep nginx [ root @ z – dig nginx ] # |
到此 Nginx 已重新编译并平滑升级成功。
在 Nginx 的配置文件中加入代码,将之前请求网站返回 Header 中的 X-Powered-By 和 WP-Super-Cache 删除:
1 2 | more_clear _headers ‘X-Powered-By’ ; more_clear _headers ‘WP-Super-Cache’ ; |
1 2 3 4 | [ root @ z – dig ~ ] # nginx -t nginx : the configuration file / usr / local / nginx / conf / nginx . conf syntax is ok nginx : configuration file / usr / local / nginx / conf / nginx . conf test is successful [ root @ z – dig ~ ] # nginx -s reload |
再次请求查看效果:
1 2 3 4 5 6 7 8 9 10 | [ root @ KVM ~ ] # curl -I www.trustauth.cn HTTP / 1.1 200 OK Server : www . z – dig . com Date : Sat , 23 Apr 2016 12 : 03 : 04 GMT Content – Type : text / html ; charset = UTF – 8 Connection : keep – alive Vary : Accept – Encoding , Cookie Cache – Control : max – age = 3 , must – revalidate [ root @ KVM ~ ] # |
经测试已成功将请求返回中的 Header 指定信息删除。想了解 ngx_headers_more 的其他功能请访问项目官网。
文章转载来自:trustauth.cn