在 nginx 的 http 块中添加 server_tokens off; 即可全局隐藏版本号,仅显示 server: nginx;该指令必须置于主配置文件 http{} 内同级位置,不可写在 server 或 location 块中,重载前需 nginx -t 验证,再用 nginx -s reload 平滑生效,并通过 curl 检查响应头及 404 页面源码确认隐藏效果。

在 Nginx 的 http 块中添加 server_tokens off; 即可隐藏版本号,这是最直接、最有效的方式。
配置位置必须正确
该指令应写在主配置文件(如 /etc/nginx/nginx.conf)的 http { ... } 区块内,而不是 server 或 location 块里。这样能确保所有站点统一生效,避免个别虚拟主机意外泄露版本信息。
- ✅ 正确写法:
http {<br> server_tokens off;<br> # 其他配置...<br>} - ❌ 不推荐:
写在某个server块里——只对该站点生效,其余站点仍可能暴露版本;
写在location块里——Nginx 1.9.11 以下版本不支持,且逻辑冗余。
配置后必须重载,不能重启
保存修改后,需验证语法并平滑重载,否则配置不会生效:
- 检查语法:
sudo nginx -t - 重载配置:
sudo systemctl reload nginx或sudo nginx -s reload - 不要用
restart,它会中断正在处理的请求。
验证是否真正隐藏成功
配置生效后,用两条命令交叉确认:
- 查响应头:
curl -I https://your-domain.com | grep Server
正常应只显示Server: nginx或完全不出现该字段(取决于是否启用第三方模块)。 - 测错误页:
curl https://your-domain.com/nonexistent-path
查看返回 HTML 源码,确认没有nginx/、1.24.0等字样。
别忘了配套关闭 PHP 和系统横幅
单靠 Nginx 隐藏不够,真实环境是多层服务:
- PHP:编辑
php.ini,设expose_php = Off,防止X-Powered-By头泄露 PHP 版本 - Linux 登录横幅:清空
/etc/issue和/etc/issue.net,避免 SSH 连接前暴露系统信息 - 宝塔用户:可在面板【网站】→【设置】→【配置文件】中直接添加该行,再点【重载配置】











