通過修改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 的其他功能請訪問項目官網。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END