nginx在http块配置server_tokens隐藏版本号信息

在 Nginx 的 http 块中配置 server_tokens off;,可全局禁用响应头中的版本号信息,提升安全性。

作用与效果

默认情况下,Nginx 在 HTTP 响应头(如 Server: nginx/1.24.0)和错误页面中会暴露版本号。攻击者可利用该信息针对性发起已知漏洞攻击。启用 server_tokens off; 后:

响应头中的 Server 字段仅显示 nginx,不带版本号所有内置错误页(如 404、502)也不再显示 Nginx 版本和操作系统信息该设置对性能无影响,纯属安全加固手段

配置位置与写法

必须放在 http 块内(而非 server 或 location),才能全局生效:

http { include mime.types; default_type application/octet-stream;<pre class=’brush:php;toolbar:false;’>server_tokens off; # ← 放在这里,顶格缩进,分号不可省略sendfile on;keepalive_timeout 65;…

}

若在 server 块中重复设置,不会覆盖 http 级别配置;Nginx 不支持 per-server 关闭版本号,仅支持全局控制。

验证是否生效

修改配置后需重载 Nginx(nginx -s reload),然后用 curl 检查响应头:

curl -I https://your-domain.com

正常应看到:Server: nginx而不是:Server: nginx/1.24.0

同时可尝试访问一个不存在的路径(如 /nonexistent),确认错误页面中不再出现版本字符串。

注意事项

该配置不能隐藏其他服务组件的版本(如 PHP-FPM、后端应用服务器),需单独处理某些 CDN 或反向代理(如 Cloudflare)可能覆盖或忽略此头,需在其控制台同步关闭 Server 头部分安全扫描工具仍可能通过指纹识别推测 Nginx 版本,因此建议配合及时升级主程序

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。