当边缘安全加速 ESA向源站请求资源时,默认使用用户请求域名作为HOST请求头,若您在源站上配置了与用户请求域名不同的站点名称,需通过修改回源HOST请求头,以完成有效的内容回源。
您的源站服务器需要支持通过HOST请求头匹配不同的虚拟站点,否则该功能配置无法达到预期的功能效果。
您所设置的回源规则中的回源Host参数的生效优先级高于在DNS记录中设置的回源Host参数,在两处同时设置的情况下,回源规则中的回源host参数配置的值将会最终生效。
背景信息
回源Host
当边缘安全加速 ESA节点向源站请求资源时,默认使用用户请求域名作为HOST请求头,用于指定请求的服务器域名。
源站将根据回源请求中的HOST请求头(如www.example.com)返回对应站点的资源,如果您的源站上配置了多个站点(如使用了虚拟站点技术),源站将校验回源请求中携带的HOST请求头和站点名称以返回正确的资源。您可以根据您源站的站点配置修改回源HOST请求头,以确保正确回源。
虚拟站点技术
虚拟站点技术是一种在单个Web服务器上提供多个网站服务的技术。服务器通过使用不同的域名或主机名来区分和隔离不同的网站。当用户请求访问某个特定的域名或主机名时,服务器会根据请求的域名或主机名,将请求定向到相应的虚拟站点,从而提供相应的网站内容。
Nginx配置虚拟站点示例
Nginx支持通过server块配置多个虚拟站点,本例中配置了3个虚拟站点,分别是www.example.org
、www.example.net
、www.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;
...
}
示意图如下:
创建回源HOST规则
登录ESA控制台。
在左侧导航栏,单击站点管理。
在站点管理页面,单击目标站点名称,或对应站点操作列的详情。
在左侧导航栏,选择
。单击新建规则,填写规则名称。
在当请求匹配以下规则时...区域设置要匹配的用户请求特征,单击回源HOST区域的配置,配置回源HOST值。
单击确定。