Nginx反向代理Https域名时,请求报错502问题排查( 二 )


小知识:1.多个域名访问不同系统,使用同一个公网IP的情况;可以多个域名配置同一个公网IP和端口,映射到不同服务的nginx代理上,通过nginx配置server_name识别源域名,判定访问来源,进行请求处理 。2.反向代理https请求,nginx编译安装时需要增加配置模块--with-http_ssl_module 3.使用阿里云的SLB作为负载均衡,证书可以配置在SLB上,但是要选择七层负载均衡 。4.为啥添加host的时候只能写域名,不能通过变量获取 。
proxy_set_header可以设置Host为、host与$http_host 。
host的值设置为$proxy_host,是指nginx.conf的proxy_pass中设置的host值,也就是192.168.1.3,也就是服务器的IP地址 。
不是一个固定的变量,他其实是http_HEADER通配后的结果 。
http_content_type表示请求头里content-type属性的值,同理,$http_host指的就是请求头里的host属性 。
$host是core模块内部的一个变量 。
当请求头里不存在Host属性或者是个空值,$host则等于server_name
如果请求头里有Host属性,那么host就是www.example.com
变量
是否显示端口
值是否存在
host

"Host:value"显示值为a:b的时候,只显示a
http_host

"Host:value",value存在就显示
proxy_host
默认80不显示其他端口显示
"Host:value"显示

  • 参考文档 https://www.cnblogs.com/faberbeta/p/nginx012.html https://blog.dianduidian.com/post/nginx反向代理当后端为https时的一些细节和原理/ 。




推荐阅读