Nginx 在反向代理上配置从后端到客户端的自定义标头

Nginx 在反向代理上配置从后端到客户端的自定义标头

Nginx(19.x)用作nodejs后端服务器(ubuntu)的反向代理。以下是反向代理的 nginx conf 文件:

server {
  listen 80;

  location /api {
    proxy_pass http://127.0.0.1:5000;  //proxy pass for nodejs backend server. Will it pass value of non-empty custom headers as well?? 
  }
}

客户端和后端服务器都可以为请求和响应设置自定义标头。我的理解是,nginx 默认将所有非空的自定义标头从客户端传递到后端服务器。nginx 是否需要额外的配置才能将自定义标头从后端传递到客户端?proxy_set_headernginx 文档中有,但我不确定它是否适用于后端到客户端。

这是在后端服务器上定义的自定义标头的示例。

                res.setHeader("x-auth-token", token);  //custom header 
                res.setHeader("x-auth-token-rsa", tokenRSA); //custom header
                res.setHeader("x-auth-secret",  secret);    //custom header

答案1

proxy_set_header是用来在nginx将客户端的请求代理到后端服务器时设置额外的header。

一个用例是将原始客户端的 IP 地址告知后端服务器:

proxy_set_header X-Real-IP $remote_addr;

nginx 会原封不动地转发来自服务器的响应,包括所有标头。您无需为其配置任何内容。

相关内容