在 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.confhttp 块中加入:

server_tokens off;

然后重载 Nginx,即可隐藏版本号。