proxy_set_header X-Forwarded-Proto $scheme;
在 Nginx 配置中,proxy_set_header X-Forwarded-Proto $scheme; 这行代码是用于设置被代理服务器(通常是后端服务器)接收到的 X-Forwarded-Proto HTTP 请求头。这个头通常用于告诉后端服务器请求是通过 HTTP 还是 HTTPS 协议发送的,这在后端服务需要知道原始请求协议的情况下非常有用。
具体解释如下:
proxy_set_header: 这是一个 Nginx 指令,用于设置或修改被代理的 HTTP 请求头。
X-Forwarded-Proto: 这是一个自定义的 HTTP 请求头,通常由反向代理(如 Nginx)设置,用于向后端服务器传递原始请求的协议信息。
$scheme: 这是一个 Nginx 变量,它包含了当前的协议名称,即 “http” 或 “https”。这个变量取决于 Nginx 如何接收到请求(是否通过 SSL/TLS 加密)。
因此,proxy_set_header X-Forwarded-Proto $scheme; 这行代码的目的是确保被代理的后端服务器接收到的 X-Forwarded-Proto 头字段正确地反映了原始请求的协议类型(HTTP 或 HTTPS)。这对于后端服务来说可能是重要的,因为它可能需要根据这个信息来决定是否将响应加密(例如,如果原始请求是 HTTPS 的,后端服务可能希望返回加密的响应以保持安全性)。
在配置 HTTPS 代理或负载均衡时,这行代码通常被用来确保后端服务能够正确地处理从前端通过 HTTPS 发送的请求。
proxy_set_header Host $ho