直接在 nginx 主配置文件的 http { } 块内添加 server_tokens off; 即可全局隐藏版本号,使响应头仅显示 server: nginx、错误页不出现 nginx/1.24.0 等字样;该指令仅在 http 作用域生效,须删除重复配置、nginx -t 验证后 reload,并同步关闭 php、cdn、反向代理等关联泄露点。

直接在 Nginx 主配置文件的 http { } 块内添加 server_tokens off;,就能彻底隐藏服务器详细信息——响应头中只显示 Server: nginx,错误页(如 404、502)里也不再出现 nginx/1.24.0 或操作系统字样。
必须写在 http 块里才生效
这个指令只在 http 作用域下起作用。写在 server 或 location 块里无效,Nginx 不支持按站点或路径单独关闭版本号显示。
- 打开主配置文件:
/etc/nginx/nginx.conf(通用系统)、/www/server/nginx/conf/nginx.conf(宝塔)或D:\phpEnv\nginx\conf\nginx.conf(phpEnv) - 找到
http {开头的位置,在其大括号内部第一层缩进处(与include mime.types;同级)添加一行:server_tokens off; - 删掉其他配置文件(比如某个网站的 conf 文件)中重复写的
server_tokens行,避免覆盖或冲突 - 注意分号不能漏,也不能写成
server_tokens = off或加引号
改完要验证再重载
语法错误会导致配置加载失败,必须先校验再应用。
- 执行
nginx -t检查配置是否合法,返回success才继续 - 校验通过后执行
nginx -s reload(命令行)或点击宝塔面板右上角「重载配置」按钮(两个循环箭头图标) - 切勿用
restart,它会中断当前连接
两个地方都要检查才算隐藏成功
只看响应头不够,错误页也可能泄露版本信息。
- 查响应头:
curl -I https://your-domain.com | grep Server,应只输出Server: nginx或完全不显示 - 测错误页:访问一个不存在路径(如
/nonexistent),查看返回的 HTML 源码,确认底部没有nginx/或操作系统信息 - 若仍暴露,重点检查是否写错层级、被子配置覆盖,或 CDN(如 Cloudflare)在回源时覆盖了
Server头
别忘了关掉其他泄露点
server_tokens off 只管 Nginx 自身,真实环境中还有多个版本信息出口:
- PHP:编辑
php.ini,设expose_php = Off,避免X-Powered-By头泄露版本 - 反向代理:上游服务(如 Tomcat、Node.js)返回的
Server头,需在对应location块中加proxy_hide_header Server; - CDN 覆盖:Cloudflare、阿里云全站加速等默认透出源站信息,需在控制台关闭“源站信息透出”或自定义
Server头 - 自定义错误页:如果用了
error_page 404 /404.html,检查 HTML 文件里是否硬编码了版本或服务器信息











