Nginx 配置 proxy_hide_header 隐藏后端 Server 的版本信息的实现

 更新时间:2026年04月20日 08:52:36   作者:冷漠man  
Nginx反向代理场景中,后端服务常会在响应头中暴露版本信息,使用proxy_hide_header指令可以在Nginx层将其过滤掉,本文就来详细的介绍一下Nginx隐藏后端 Server 的版本信息的实现,感兴趣的可以了解一下

在 Nginx 反向代理场景中,后端服务(如 Apache、Tomcat、Node.js 等)常会在响应头中携带 Server、X-Powered-By 等字段暴露版本信息。使用 proxy_hide_header 指令可以在 Nginx 层将其过滤掉。

为什么 proxy_hide_header Server 通常不起作用

Nginx 默认会将上游响应中的 Server 头视为“受信响应头”,即使你写了 proxy_hide_header Server,它仍可能被透传或被 Nginx 自动重写。尤其当后端是标准 Web 服务器(如 Apache、Tomcat)且未禁用自身 Server 头时,Nginx 的隐藏逻辑容易被绕过。

真正起效的方式是:让后端不发 Server 头 + 让 Nginx 不添加自己的 Server 头 + 主动清除残留。

基础配置

在 location、server 或 http 块中添加:

location / {
    proxy_pass http://backend;
    # 隐藏后端 Server 版本(如 Apache/2.4.41、nginx/1.18.0 等)
    proxy_hide_header Server;
    # 隐藏其他可能暴露技术栈的头部
    proxy_hide_header X-Powered-By;
    proxy_hide_header X-AspNet-Version;
    proxy_hide_header X-Runtime;
}

完整安全加固示例

server {
    listen 80;
    server_name example.com;
    # 1. 隐藏 Nginx 自身版本号(响应头中只显示 "nginx" 而不显示版本)
    server_tokens off;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        # 2. 隐藏后端暴露的头部
        proxy_hide_header Server;
        proxy_hide_header X-Powered-By;
        # 3. 可选:添加安全响应头
        add_header X-Frame-Options "SAMEORIGIN" always;
        add_header X-Content-Type-Options "nosniff" always;
    }
}

关键指令说明

指令作用范围说明
proxy_hide_header Server反向代理移除后端返回的 Server 头(如 Apache/2.4.41)
server_tokens offNginx 自身隐藏 Nginx 版本号,错误页面也不显示版本
more_clear_headers ServerNginx 自身需要 headers-more-nginx-module 模块,可完全移除 Server 头

注意事项

proxy_hide_header 只影响后端返回的头:如果要完全移除 Nginx 自身的 Server: nginx 头,需要安装第三方模块 headers-more-nginx-module:

more_clear_headers Server;

检查是否生效:

curl -I http://example.com

确认响应头中不再包含 ServerX-Powered-By

如果后端是 Nginx:后端也需要配置 server_tokens off;,否则它会将带版本的 Server 头传给前端 Nginx。

这样配置后,响应头中的服务器版本信息就会被有效隐藏,减少被针对性扫描攻击的风险。

到此这篇关于Nginx 配置 proxy_hide_header 隐藏后端 Server 的版本信息的文章就介绍到这了,更多相关Nginx 隐藏Server版本信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Nginx配置PHP的Yii与CakePHP框架的rewrite规则示例

    Nginx配置PHP的Yii与CakePHP框架的rewrite规则示例

    这篇文章主要介绍了Nginx配置PHP的Yii与CakePHP框架的rewrite规则示例,是这两款高人气框架使用Nginx的关键配置点,需要的朋友可以参考下
    2016-01-01
  • Nginx显示500错误的原因以及解决方法

    Nginx显示500错误的原因以及解决方法

    nginx出现500错误,不会显示具体错误信息,要到日志文件里面去看,下面这篇文章主要给大家介绍了关于Nginx显示500错误的原因以及解决方法的相关资料,需要的朋友可以参考下
    2022-12-12
  • Nginx结合keepalived实现双机热备方案

    Nginx结合keepalived实现双机热备方案

    Nginx难免遇见故障,可以使用使用keepalived来实现Nginx的高可用,本文主要介绍了Nginx结合keepalived实现双机热备方案,具有一定的参考价值,感兴趣的可以了解一下
    2024-05-05
  • 欧拉部署nginx的实现步骤

    欧拉部署nginx的实现步骤

    本文主要介绍了欧拉部署nginx的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-08-08
  • Nginx配置多台机器实现负载均衡的教程详解

    Nginx配置多台机器实现负载均衡的教程详解

    这篇文章主要为大家详细介绍了Nginx配置多台机器实现负载均衡的相关教程,文中的示例代码简洁易懂,有需要的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • Nginx中常见header配置及修改

    Nginx中常见header配置及修改

    在nginx中,经常需要因为各种原因,修改header,本文就来介绍一下header配置及修改,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • 服务器部署之虚拟机安装nginx并部署web网页

    服务器部署之虚拟机安装nginx并部署web网页

    本文提供了一个关于Nginx的安装与配置的简单入门教程,涵盖从安装所需插件(如gcc、zlib、pcre、openssl等),到下载、解压、编译安装Nginx的完整过程,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2024-10-10
  • Nginx服务器做负载均衡反向代理的超级攻略

    Nginx服务器做负载均衡反向代理的超级攻略

    这篇文章主要介绍了Nginx服务器做负载均衡反向代理的超级攻略,包括缓存的相关设定以及负载均衡的一些常见问题的解决,极力推荐!需要的朋友可以参考下
    2015-08-08
  • 前端异常502 bad gateway的原因和解决办法

    前端异常502 bad gateway的原因和解决办法

    本文详细讲解了前端异常502 bad gateway的原因和解决办法,文中通过示例代码介绍的非常详细。对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧<BR>
    2021-12-12
  • Nginx中配置用户服务器访问认证的方法示例

    Nginx中配置用户服务器访问认证的方法示例

    这篇文章主要介绍了Nginx中配置用户服务器访问认证的方法示例,包括一个用perl脚本来实现的方法,需要的朋友可以参考下
    2016-01-01

最新评论