直接在 nginx 主配置文件的 http 块内添加 server_tokens off; 即可全局隐藏版本号,使响应头仅显示 server: nginx、错误页不出现版本信息;该指令必须与 include mime.types; 同级写在 http{} 内,删重复配置、nginx -t 验证后 reload,并需 curl 测响应头及访问 404 页面验证效果。

直接在 Nginx 主配置文件的 http 块内添加 server_tokens off; 即可全局关闭版本号输出,让响应头只显示 Server: nginx,错误页也不再出现 nginx/1.x.x 字样。
正确添加位置
该指令必须写在 http { } 作用域内,且与 include mime.types;、default_type 等同级。常见有效位置示例:
- 打开主配置文件:
/etc/nginx/nginx.conf(通用系统)或/www/server/nginx/conf/nginx.conf(宝塔)或D:\phpEnv\nginx\conf\nginx.conf(phpEnv) - 找到
http {开头处,在其大括号内部第一层缩进位置添加一行:server_tokens off; - 不要写在
events、server或location块里——这些位置无效 - 删掉其他配置文件中重复出现的
server_tokens行,避免覆盖或冲突
保存后必须验证并重载
改完不能直接重启,需按顺序执行:
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
- 运行
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; - Linux 登录横幅:清空
/etc/issue和/etc/motd,防止 SSH 前泄露系统信息 - 自定义错误页:如果用了
error_page 404 /404.html,检查 HTML 文件里是否硬编码了版本或服务器信息










