Linux下配置Nginx隐藏版本号可降低被针对性攻击风险,需在http块中设置server_tokens off并重载服务,使响应头Server字段仅显示nginx或为空。

Linux 下配置 Nginx 隐藏版本号,能减少攻击者识别服务版本后利用已知漏洞的风险,属于基础但有效的安全加固措施。它不改变功能,只需修改少量配置并重启服务即可生效。
确认当前 Nginx 版本是否暴露
默认情况下,Nginx 响应头(Server 字段)和错误页会显示版本号,例如 Server: nginx/1.24.0。可直接用 curl 测试:
curl -I http://your-domain.com
若响应头中含具体版本号,说明尚未隐藏;若只显示 Server: nginx 或完全移除,则已生效。
修改主配置文件禁用版本号输出
编辑主配置文件(通常为 /etc/nginx/nginx.conf),在 http 块内添加或修改以下两行:
- server_tokens off; —— 关闭响应头和错误页中的版本号(推荐放在 http 块顶层,全局生效)
- server_name_in_redirect off;(非必需,仅当需控制重定向 Host 头时启用)
注意:该指令必须置于 http{...} 块内,不能写在 server 或 location 块中,否则无效。
检查并重启 Nginx 服务
修改后务必验证语法、重载配置:
- 运行 nginx -t 确保配置无误
- 执行 systemctl reload nginx(或 nginx -s reload)平滑重载
- 再次用 curl 测试响应头,确认
Server字段不再含版本数字
如仍显示版本号,请检查是否多个配置文件中存在重复的 server_tokens on; 覆盖了设置,尤其注意 include 的子配置(如 sites-enabled/ 下的文件)。
进阶建议:彻底隐藏 Server 字段(可选)
若需进一步隐藏服务器标识(如将 Server: nginx 改为自定义值或完全删除),需重新编译 Nginx 或使用第三方模块(如 headers-more-nginx-module)。普通用户不建议强行删除 Server 头——部分客户端或中间设备依赖该字段做兼容性判断,且隐藏本身无法替代补丁更新与权限管控等核心防护措施。


















