通过Nginx定义Header头信息

导读 通过修改nginx的conf文件,轻松达到自定义HTTP Header的目的。

Nginx 使用 ngx_headers_more 模块来增加、删除出站、入站的 Header 信息。默认该模块没有加入到 Nginx 的源码中,要想使用相关功能需要在编译 Nginx 时加入该模块。本人服务器中的 Nginx 在编译时没有加入该模块,使用 -V 查看当前 Nginx 的编译参数:

[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 ~]#

从官网下载模块:

[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.z-dig.com 的 Header 信息:

[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 ,平滑更新:

[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 删除:

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

再次请求查看效果:

[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 的其他功能请访问项目官网。

本文原创地址:https://www.linuxprobe.com/nginx-modify-http-header.html编辑:public,审核员:暂无

本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如果侵犯你的利益,请发送邮箱到 [email protected],我们会很快的为您处理。
超哥软件库 » 通过Nginx定义Header头信息