网络环境条件及实际调用需求如下图所示:
如图,要点如下:
- 应用实际请求的协议是
http
,而通过 nginx 反向代理的最终接口是https
- 应用实际请求的域名是
mynginx.com
,而通过 nginx 反向代理的最终接口域名是api.weixin.com:8080
对于这两点,在配置 nginx 反向代理时,要注意正确设置 Host
和 X-Forwarded-Proto
两个 header,否则接口不能被正常调用,配置示例如下所示:
location /weixin/ {.......proxy_set_header Host api.weixin.com:8080; # 要点1:这里要固定配置目标 host,不能使用 $host 变量proxy_set_header X-Forwarded-Proto https; # 要点2:这里要固定配置目标 scheme,不能使用 $scheme 变量.......proxy_pass https://api.weixin.com:8080/;
}
注:本例中
$host
实际值是应用服务器请求的mynginx.com
,$scheme
实际值是应用服务器请求的http
。我们要保证最终服务器能正常识别它自己的域名和协议,需要固定设置这两个Header的值。
(END)