回源HOST

边缘安全加速 ESA向源站请求资源时,默认使用用户请求域名作为HOST请求头,若您在源站上配置了与用户请求域名不同的站点名称,需通过修改回源HOST请求头,以完成有效的内容回源。

重要
  • 您的源站服务器需要支持通过HOST请求头匹配不同的虚拟站点,否则该功能配置无法达到预期的功能效果。

  • 您所设置的回源规则中的回源Host参数的生效优先级高于DNS记录中设置的回源Host参数,在两处同时设置的情况下,回源规则中的回源host参数配置的值将会最终生效。

背景信息

回源Host

边缘安全加速 ESA节点向源站请求资源时,默认使用用户请求域名作为HOST请求头,用于指定请求的服务器域名。

image

源站将根据回源请求中的HOST请求头(如www.example.com)返回对应站点的资源,如果您的源站上配置了多个站点(如使用了虚拟站点技术),源站将校验回源请求中携带的HOST请求头和站点名称以返回正确的资源。您可以根据您源站的站点配置修改回源HOST请求头,以确保正确回源。

虚拟站点技术

虚拟站点技术是一种在单个Web服务器上提供多个网站服务的技术。服务器通过使用不同的域名或主机名来区分和隔离不同的网站。当用户请求访问某个特定的域名或主机名时,服务器会根据请求的域名或主机名,将请求定向到相应的虚拟站点,从而提供相应的网站内容。

Nginx配置虚拟站点示例

Nginx支持通过server块配置多个虚拟站点,本例中配置了3个虚拟站点,分别是www.example.orgwww.example.netwww.example.com

Nginx优先在HTTP请求头中查找Host字段以确定请求需要路由到的虚拟站点,如果没有匹配到任何一个虚拟站点,Nginx会使用默认的虚拟站点提供服务(若未配置,默认为第一个server配置为默认站点)。

server {
    listen      80;
    server_name example.org www.example.org;
    ...
}

server {
    listen      80;
    server_name example.net www.example.net;
    ...
}

server {
    listen      80;
    server_name example.com www.example.com;
    ...
}

示意图如下:

image

创建回源HOST规则

  1. 登录ESA控制台

  2. 在左侧导航栏,单击站点管理

  3. 站点管理页面,单击目标站点名称,或对应站点操作列的详情

  4. 在左侧导航栏,选择规则 > 回源规则

  5. 单击新建规则,填写规则名称

  6. 当请求匹配以下规则时...区域设置要匹配的用户请求特征,单击回源HOST区域的配置,配置回源HOST值。

  7. 单击确定