Nginx proxy_set_header配置方式
Nginx proxy_set_header配置HOST配置详解及其应用
1.1 配置表
如下表所示:
变量值携带端口描述配置示例http_host√转发时会完整转发ip+portproxy_set_header Host $http_hostproxy_host√80不携带,其他端口携带proxy_set_header Host $proxy_hosthost×仅携带hostproxy_set_header Host $host
1.2 应用讲解
1. 一般nginx做转发的时候配置http_host即可
2. 如果遇到下图所示的场景时,也就是域名指向一个服务器,由那个服务器根据不同的端口进行转发到各自的应用服务器,甚至出现多级的跳转情况,我们假定域名指向端口是8000应用服务器A端口对于nginx域名的端口接受是 9000 , 应用服务A提供的服务端口是 7000。对于A服务被请求的端口是9000, 实际用户使用的是8000,那么就会出现302 资源重定向导致的无法找到的问题。
故在一级甚至多级跳转的时候需要考虑这个问题。
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 在需要向客户端发送额外信息或增强安全性的情况下使用
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
来源:https://www.jb51.net/server/322204z8s.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!
页:
[1]