nginx remove header
什么是 Nginx ?
Nginx是一种轻量级的Web服务器,同时也是一个可作为反向代理服务器、负载均衡器和HTTP缓存的工具。它可以在一个物理服务器上跑多个虚拟主机,对于高访问量、负载均衡的网站,Nginx是一个不可或缺的服务器。
为什么要 nginx remove header ?
在生产环境中,为了提高WEB服务器的安全性,维护人员常常需要删除Server头中的版本信息和nginx头信息。很多时候,我们不希望客户端得知我们用的是什么web服务器中的什么版本,以防止恶意攻击。同时,我们也可以删除Nginx服务器生成的一些HTTP响应头以减少客户端请求的数据量。
如何 nginx remove header ?
nginx remove header 的方式很多,网上有很多教程,这里我们总结一下最常用的几种方式。第一种,通过 Nginx 提供的 ngx_http_headers_module 来实现:在 http 块中,我们可以使用“underscores_in_headers on;”将下划线也允许在HTTP响应头部。通过设置 $server_tokens off,可以关闭NGINX服务器上的详细版本号。最后通过指定要删除的响应头来达到删除HTTP响应头中对应字段的目的。
第二种,直接修改Nginx源码,在 ngx_http_init_phase_handlers 函数中添加我们要删除的HTTP响应头字段。最后重新编译 Nginx,就可以将这些HTTP响应头字段去掉了。不过,这种方法需要修改 Nginx 源码,不是很方便。
如何在 nginx 中隐藏版本信息
除了 nginx remove header 以外,我们还可以通过隐藏nginx版本信息的方法来保护我们的网站安全。由于客户端可以通过 http 响应头信息获取服务器的版本信息,所以我们需要将其隐藏。方法也很简单,在 nginx.conf 的 http 块里加上 $server_tokens off; 就可以达到目的了。
nginx remove header 的注意事项
虽然可以通过 nginx remove header 来删除HTTP响应头,但要注意,我们不能随意地删除响应头,否则会产生不良后果。常见的危险的响应头删除有:Contet-Type、Content-Encoding、Content-Length 等。在删除响应头之前,要确保已经完全理解每一个响应头的作用,及其在网站运行过程中的影响。