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

Nginx: proxy_set_header 与 add_header 区别

proxy_set_header


1 )概述

  • proxy_set_header 和 add_header 是 Nginx 配置中两个不同的指令, 它们各自有不同的用途
  • proxy_set_header 指令用于修改转发到代理服务器(通常是后端应用服务器)的 HTTP 请求头
  • 它允许您设置或覆盖请求头中的字段,以便后端服务器能够接收正确的信息或根据这些信息做出响应
  • 例如,有时可能会使用 proxy_set_header 来设置 Host 头,这样后端服务器就知道它正在为哪个域名提供服务
  • 有时候,还可以设置 X-Real-IP 和 X-Forwarded-For 头来传递客户端的真实 IP 地址和请求链中的代理信息

示例

location / {  proxy_pass http://backend_servers;  proxy_set_header Host $host;  proxy_set_header X-Real-IP $remote_addr;  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;  
}

add_header


1 ) 概述

  • add_header 指令用于向 Nginx 发出的 HTTP 响应中添加或覆盖响应头字段
  • 这通常用于添加自定义的头部信息,如跨域资源共享(CORS)的头部,或者为响应添加安全相关的头部(如 X-Content-Type-Options)

2 ) 示例

location / {  # ... 其他配置 ...  add_header X-Content-Type-Options nosniff;  add_header X-Frame-Options DENY;  add_header X-XSS-Protection "1; mode=block";  
}

两者区别

  • 方向:proxy_set_header 修改的是请求头(request header),而 add_header 修改的是响应头(response header)
  • 目标:proxy_set_header 的目标是后端服务器,用于通知后端关于请求的一些信息;而 add_header 的目标是客户端,用于向客户端提供额外的信息或指令
  • 使用场景:proxy_set_header 通常在反向代理配置中使用,确保后端服务器能正确处理请求;而 add_header 在需要向客户端发送额外信息或增强安全性的情况下使用

相关文章:

  • 卫星遥感监测森林植被健康度
  • 影院座位选择简易实现(uniapp)
  • 【Qt】:常用控件(一:概述和QWidget核心属性)
  • 容器和K8s常见概念
  • 理解数学概念——整函数(复平面可积函数)
  • 主流公链文章整理
  • node res.end返回json格式数据
  • react组件:strictmode
  • 漂亮国的无人餐厅的机器人骚操作
  • 12、最小覆盖子串
  • AcWing---转圈游戏---快速幂
  • OSPF中配置静态路由负载分担实验简述
  • LeetCode 1049. 最后一块石头的重量 II
  • 如何做一个知识博主? 善用互联网检索
  • FastAPI+React全栈开发19 React Hooks事件和状态
  • Docker: 容器互访的三种方式
  • go append函数以及写入
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Java Agent 学习笔记
  • JavaScript异步流程控制的前世今生
  • nodejs调试方法
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 关于Flux,Vuex,Redux的思考
  • 记录:CentOS7.2配置LNMP环境记录
  • 来,膜拜下android roadmap,强大的执行力
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 微信开放平台全网发布【失败】的几点排查方法
  • 用 vue 组件自定义 v-model, 实现一个 Tab 组件。
  • 追踪解析 FutureTask 源码
  • ​如何在iOS手机上查看应用日志
  • (+4)2.2UML建模图
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (5)STL算法之复制
  • (bean配置类的注解开发)学习Spring的第十三天
  • (JS基础)String 类型
  • (层次遍历)104. 二叉树的最大深度
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (生成器)yield与(迭代器)generator
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转)Linux下编译安装log4cxx
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .cn根服务器被攻击之后
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .net访问oracle数据库性能问题
  • .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  • .Net中ListT 泛型转成DataTable、DataSet
  • @Autowired和@Resource装配
  • @Mapper作用
  • @Transaction注解失效的几种场景(附有示例代码)
  • @zabbix数据库历史与趋势数据占用优化(mysql存储查询)
  • [ C++ ] STL priority_queue(优先级队列)使用及其底层模拟实现,容器适配器,deque(双端队列)原理了解
  • [] 与 [[]], -gt 与 > 的比较