我最近使用 Nginx 在一些 Docker 容器上设置了一个反向代理服务器,它按预期工作。我正在将这些容器本身反向代理到在这些容器上运行的应用程序。
我只是不明白服务器如何接收子域来决定应该将请求路由到哪里。
据我所知,每个域都由 DNS-Servers 解析并返回服务器的 IP 地址,因此客户端可以使用接收到的 IP 连接到目标服务器。但显然客户端也将域附加到请求中,这可能吗?
我对此没有明确的解释,因为从我的角度来看,客户端使用 IP 而不是域连接到目标服务器。
Host:
标题。当任何 Web 浏览器发出 GET 请求以加载网页时,它会发送一个Host:
标头,Web 服务器可以将其用于基于名称的虚拟主机和反向代理之类的事情。
虽然 Nginx 有一些关于它是如何工作的文档——在“基于名称的虚拟服务器”的标题下,我发现基于名称的虚拟主机的Apache 文档更清楚地解释了它是如何工作的:
“如果请求包含
Host:
标头字段,则会在列表中搜索第一个具有匹配ServerName
或 的虚拟主机ServerAlias
,然后从该虚拟主机提供请求。甲Host:
头域可以包含一个端口号,但是Apache总是忽略它和针对该客户端发送请求的实端口相匹配。”
所以这一切都归结为Host:
标题:
Host:
标头,然后由接收 Web 服务器解释以执行...或忽略...这只是一个可以使用的标头。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句