通过修改nginx的conf文件,轻松达到自定义HTTP Header的目的。
Nginx 使用 ngx_headers_more 模块来增加、删除出站、入站的 Header 信息。默认该模块没有加入到 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 OpenSSL 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/ -O . /headers-more-nginx-module-master .zip [root@z- dig src] # unzip headers-more-nginx-module-master.zip |
重新编译 Nginx 前,请求 www.z-dig.com 的 Header 信息:
1 2 3 4 5 6 7 8 9 10 11 12 | [root@KVM ~] # curl -I www.z-dig.com 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 3 4 5 6 | more_clear_headers 'X-Powered-By'; more_clear_headers 'WP-Super-Cache'; [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.z-dig.com 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 的其他功能请访问项目官网。
到此这篇关于通过Nginx定义Header头信息的实现步骤的文章就介绍到这了,更多相关Nginx定义Header头信息内容请搜索IT俱乐部以前的文章或继续浏览下面的相关文章希望大家以后多多支持IT俱乐部!