当前位置: 首页 > news >正文

nginx的 add_header 是给谁添加的?

nginx 中的 add_header 指令是 向 HTTP 响应头(Response Headers)中添加自定义头部字段,也就是说:

add_header 是给「客户端」(如浏览器、curl、App 等)返回的响应添加 header 的。


📌 举个例子

server {listen 80;server_name example.com;location /api {proxy_pass http://backend;add_header X-Custom-Info "Hello from Nginx";}
}

当客户端请求 http://example.com/api 时,Nginx 会:

  1. 把请求转发给后端(proxy_pass);
  2. 收到后端的响应后,在返回给客户端的响应头中加上:
    X-Custom-Info: Hello from Nginx
    

你在浏览器 DevTools 或 curl -I 中就能看到这个 header。


⚠️ 重要注意事项

1. add_header 只作用于当前 locationserverhttp

  • 如果你在 server 块中定义了 add_header,但在某个 location 块中也定义了 add_header,那么 server 中的 header 会被覆盖(不会继承)!

✅ 正确做法:如果想在多个 location 中复用 header,可以使用 include 或重复写。

# ❌ 错误:/api 不会包含 X-Frame-Options
server {add_header X-Frame-Options "DENY";location /api {add_header X-API-Version "v1";  # 这会导致 X-Frame-Options 丢失!proxy_pass http://backend;}
}

✅ 修复方式:在 /api 中显式添加所有需要的 header:

location /api {add_header X-Frame-Options "DENY";add_header X-API-Version "v1";proxy_pass http://backend;
}

💡 这是 Nginx 的一个经典“坑”:子块中的 add_header 会完全覆盖父块的 add_header


2. add_header 对 4xx/5xx 错误页面也生效吗?

默认情况下,add_header 只对 2xx 和 3xx 响应生效
如果你希望在错误响应(如 404、500)中也添加 header,需要加上 always 参数:

add_header X-Content-Type-Options "nosniff" always;
  • 不加 always:只在成功响应(200、301 等)中添加;
  • always:在所有响应(包括 404、500)中都添加。

3. add_header 不影响请求头(Request Headers)

如果你想修改或添加发送给后端的请求头(比如加 X-Forwarded-For),应该用:

proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;

🔁 总结:

  • add_header响应头(Response)→ 给客户端
  • proxy_set_header请求头(Request)→ 给后端服务器

✅ 常见用途

场景 示例
安全加固 add_header X-Content-Type-Options "nosniff";
CORS 支持 add_header Access-Control-Allow-Origin "*";
缓存控制 add_header Cache-Control "no-store";
自定义标识 add_header X-Powered-By "MyApp";

🔧 调试技巧

curl 查看响应头是否生效:

curl -I http://your-domain.com/path

检查输出中是否包含你添加的 header。


总结

问题 答案
add_header 是给谁加的? 给客户端的 HTTP 响应头
能加到请求头上吗? ❌ 不能,要用 proxy_set_header
子 location 会继承父 header 吗? ❌ 不会,会被覆盖
能在 404 页面加 header 吗? ✅ 可以,加 always 参数

正确理解和使用 add_header,能有效提升 Web 应用的安全性、可维护性和可观测性。

http://www.jsqmd.com/news/438492/

相关文章:

  • 2026 实测:支持 AI 自动化的国产 PCB 软件推荐 - 品牌2026
  • 2026青少年洗发水哪个牌子最好用最安全?5大专业品牌深度测评 - 包罗万闻
  • 2026年头皮护理排行榜:年度趋势与好物前瞻 - 博客万
  • 测试随笔
  • 细聊全国先进牛奶生产线选购要点,上望机械制造不容错过 - mypinpai
  • 7款主流CRM品牌的四维深度对比(2026) - 毛毛鱼的夏天
  • 开工加满电,HarmonyOS SDK给你开挂体验
  • 不错的代驾平台企业有哪些,三玖驾到代驾上榜没? - 工业设备
  • apifox配置全局token
  • 浙大新研究让LVLMs懂版权、守规矩
  • 2026年分析仪选购指南:这些品牌凭实力获市场认可,ND1800 数模一体继电保护测试仪,分析仪公司哪家好 - 品牌推荐师
  • 盘点2026海外深度AI搜索公司,哪家口碑排名靠前 - 工业品牌热点
  • 工业级可视化引擎HOOPS Visualize Web 2026.1.0重塑Web 3D可视化体验
  • 2026年白云区酒店客房用品TOP5推荐,谁更值得信赖?
  • 头皮精华液排行榜:清爽、滋养、防脱全覆盖 - 博客万
  • 2026年污水处理控制柜评测:这几家源头厂家值得关注,水泵专用控制柜/智能水泵控制柜,污水处理控制柜企业选哪家 - 品牌推荐师
  • Byte Buddy 核心实战:深入理解 MethodDelegation 方法委托
  • 探讨全国果汁生产线生产厂哪家好,上望机械制造值得推荐吗? - 工业品网
  • 杭州有哪些招聘平台?2026本地求职招工优选指南 - 博客万
  • 谷歌与OpenAI深夜较量:Gemini 3.1与GPT-5.3的技术竞赛全面升级
  • 看完就会:继续教育专用AI论文工具,千笔·专业论文写作工具 VS 文途AI
  • 讲讲求推荐日本劳务方案,上海地区靠谱的日本劳务机构有哪些? - 工业推荐榜
  • 基于 YOLOv11 + DeepSeek 的火灾检测系统 深度学习框架YOLO结合deepseek 调用 DeepSeek 生成火灾风险建议
  • OPC UA协议学习笔记
  • 实测有效!知网 / 维普 AIGC 检测通关指南:Paperxie 降重降 AI 痕迹全拆解
  • Go - Constructor Functions
  • 基于YOLOv8和PyQt5的学生学习课堂行为检测系统 训练脚本、检测工具、GUI程序和其他必要的文件。深度学习目标检测中使用Yolov8训练学生课堂行为检测数据集的训练。
  • 少走弯路:MBA必备的降AIGC神器 —— 千笔·专业降AI率智能体
  • 基于微信小程序的智能浴室管理系统[小程序]-计算机毕业设计源码+LW文档
  • github上拥有55K star的一款用于构建本地私有知识库的开源 AI 工具:AnythingLLM