在 Nginx 中隐藏版本号(防止暴露服务器信息,提升安全性),可以通过配置 server_tokens 指令实现。
✅ 方法:在 Nginx 配置中关闭 server_tokens
步骤 1:编辑 Nginx 主配置文件或站点配置文件
通常修改主配置文件即可全局生效:
sudo vi /etc/nginx/nginx.conf
步骤 2:在 http 块中添加或修改以下行
http {
# ... 其他配置 ...
# 隐藏 Nginx 版本号
server_tokens off;
# ... 其他配置 ...
}
💡 你也可以将
server_tokens off;放在具体的server块中(如/etc/nginx/conf.d/your-site.conf),但放在http块中可对所有站点生效。
🔍 效果对比
修改前(默认):
- HTTP 响应头包含:
Server: nginx/1.20.1 - 错误页面(如 404、500)底部显示:
<center>nginx/1.20.1</center>
修改后(server_tokens off;):
- HTTP 响应头变为:
Server: nginx - 错误页面不再显示版本号,只显示
nginx或完全不显示(取决于 Nginx 版本)
🛠 高级:完全移除 Server 头(可选)
如果你连 Server: nginx 都不想暴露,需要使用第三方模块(如 headers-more-nginx-module),标准 Nginx 不支持完全删除 Server 头。
但对大多数场景,server_tokens off; 已足够安全。
✅ 重载 Nginx 使配置生效
# 测试配置语法
sudo nginx -t
# 重载配置(不中断服务)
sudo systemctl reload nginx
🔒 安全建议
隐藏版本号是 “安全 through obscurity”(隐蔽式安全) 的一部分,虽不能阻止攻击,但能:
- 减少自动化脚本的针对性攻击
- 避免暴露已知漏洞的版本信息
配合以下措施更安全:
- 及时更新 Nginx
- 使用防火墙限制访问
- 禁用不必要的模块
- 配置最小权限
✅ 总结:
只需在 nginx.conf 的 http 块中加入:
server_tokens off;
然后重载 Nginx,即可隐藏版本号。