万神劫

万物天地为剑,神鬼妖邪为剑
劫波万渡,宇宙苍穹尽为剑
是为万神劫!

3条评论 2012-06-11

隐藏 Nginx + Passenger 的server header

前段时间在检查博客的 http 包的时候发现,Nginx 和 Passenger 居然将自己的版本信息全都放到了 response 的 header 中
参见下图箭头处

这样其实留下了一定的安全隐患,所以我决定关掉这两个 header 的输出

简单搜索后,看到有一种说法称,添加 server_tokens off; 到 Nginx 的配置文件中,能够隐藏 Nginx 版本信息,但是经过我的实验,此法毫无效果;另外 Passenger 的 header 似乎也没有方法消除……

多番查找之后,终于发现一个折中的办法,不过需要重新编译 Nginx ,添加一个第三方的 Module ,叫做 HttpHeadersMore
参见此页http://wiki.nginx.org/NginxHttpHeadersMoreModule

然后在 Nginx 配置文件中增加以下语句

more_clear_headers  'Server' 'X-Powered-By';

此 Module 会将 reponse 输出中的 Server 和 X-Powered-By 两个头去掉
如果你想玩大的,那么还可以这样

more_set_headers    "Server: klog_server";
more_set_headers    "X-Powered-By: klog";

嘿嘿,结果应该不难猜吧

comments powered by Disqus