server_tokens off; 可全局禁用 nginx 响应头及错误页中的版本号,仅显示“server: nginx”,提升安全性;须置于 http 块内,重载后用 curl 验证。

在 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 版本,因此建议配合及时升级主程序










