1、在开发小程序项目中,由于服务器在国外(域名没有在国内备案),小程序要求域名需在国内备案后才能使用,故注册了一个国内域名并备案后,在代理到域外的服务器上。
location / {
proxy_pass http://xxx.com/;
}
结果访问时报502;在备案的域名解析的服务器上访问也是正常的;
2、这是因为nginx在访问时,把域名解析成ip进行访问的,接口只能通过域名访问
(nginx同端口不同域名及禁用未绑定域名访问的配置,确实可以实现,这是https的SNI问题)
3、解决这个问题 nginx 官方给了一个参数:proxy_ssl_server_name
修改配置:
location / {
proxy_ssl_server_name on;
proxy_pass https://xxx.com/;
proxy_set_header X-Forward-For $remote_addr;
}
解决问题