nginx中隐藏版本号需配置server_tokens off以去除响应头及错误页中的版本信息,再配合自定义错误页、最小权限运行、禁用非必要模块和定期更新,构成基础安全加固。

在 Nginx 中隐藏版本号,能减少攻击者通过版本信息识别已知漏洞的风险,属于基础但有效的安全加固措施。核心是关闭服务器响应头中的 Server 字段版本标识,并可选地屏蔽错误页中暴露的版本信息。
关闭响应头中的 Server 版本号
默认情况下,Nginx 会在 HTTP 响应头中返回类似 Server: nginx/1.24.0 的字段。只需在主配置或 server 块中添加一行即可隐藏版本:
- 编辑
nginx.conf(通常位于/etc/nginx/nginx.conf或/usr/local/nginx/conf/nginx.conf) - 在
http块(全局生效)或某个server块内添加:
server_tokens off; - 保存后执行
nginx -t检查语法,再nginx -s reload重载配置
此时响应头将变为 Server: nginx(仅显示软件名),若需彻底隐藏,需重新编译 Nginx 并修改源码,一般不推荐;日常防护中 server_tokens off 已足够。
避免错误页面泄露版本信息
当发生 404、500 等错误时,Nginx 默认错误页会显示带版本号的页脚(如 “nginx/1.24.0”)。可通过以下方式消除:
- 自定义错误页:用
error_page指向静态 HTML 文件,且该文件不含版本信息 - 或禁用默认错误页的版本输出:确保
server_tokens off;已启用(它同时影响错误页生成逻辑) - 验证方式:用
curl -I https://your-domain.com/nonexistent查看响应头和返回内容是否仍含版本字符串
补充建议:配合其他基础安全项
单独隐藏版本号不能替代纵深防御,建议同步检查:
- 确认 Nginx 运行用户权限最小化(如使用
www-data而非root) - 关闭不必要的模块(如
autoindex、ssi),降低攻击面 - 定期更新 Nginx 至稳定版本,及时修复真实漏洞,比隐藏版本更重要











