帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  Nginx中add_header和proxy_set_header的区别及说明

Nginx中add_header和proxy_set_header的区别及说明

2024-08-27 14:05:04 1589

蓝队云小课堂:
add_header

add_header 用来在 Nginx 发送响应给客户端之前添加或覆盖 HTTP 响应头。它主要用于添加一些自定义的响应头字段,如安全相关的头字段 (Content-Security-Policy, X-XSS-Protection 等) 或者缓存控制相关的头字段 (Cache-Control)。

 

示例用法:

server {

    listen 80;

    server_name example.com;

 

    location / {

        add_header Content-Security-Policy "default-src 'self'; script-src 'self' cdn.example.com";

        add_header X-XSS-Protection "1; mode=block";

        add_header Cache-Control "max-age=3600, public";

 

        # 其他配置...

    }

}

 

proxy_set_header

proxy_set_header 则是在 Nginx 将请求转发给后端服务器之前设置 HTTP 请求头。它的主要用途是将某些客户端信息或者自定义信息传递给后端服务,例如客户端的真实 IP 地址、HTTP 方法等。

 

示例用法:

server {

    listen 80;

    server_name example.com;

 

    location / {

        proxy_pass http://www.landui.com;

 

        # 设置 X-Real-IP 和 X-Forwarded-For 头部

        proxy_set_header X-Real-IP $remote_addr;

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

 

        # 其他配置...

    }

}

 

主要区别:

1.作用对象不同:

add_header 用于修改 Nginx 发送给客户端的响应头。

proxy_set_header 用于修改 Nginx 发送给后端服务器的请求头。

2.使用场景不同:

add_header 通常用于添加安全策略、缓存控制或其它客户端可见的元数据。

proxy_set_header 通常用于传递客户端信息或自定义信息给后端服务器,比如客户端的真实 IP 地址、原始请求方法等。

3.影响范围不同:

add_header 影响最终到达客户端的响应。

proxy_set_header 影响发送给后端服务器的请求。

 

总结

使用 add_header 来添加或覆盖响应头,适用于添加安全策略、缓存控制等客户端可见的信息。

使用 proxy_set_header 来设置转发请求时的请求头,适用于向后端服务器传递客户端信息。

更多小知识,可联系蓝队云一起探讨。

提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: