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_header
nginx 文档中有,但我不确定它是否适用于后端到客户端。
这是在后端服务器上定义的自定义标头的示例。
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 会原封不动地转发来自服务器的响应,包括所有标头。您无需为其配置任何内容。