设置回源host

默认情况下,CDN 回源时带的回源 Host 是加速域名,如果源站的 Web 站点没有配置与加速域名对应的 Host,则 CDN 无法通过加速域名回源,此时可以通过更改回源 Host 使 CDN 能够正常回源。

这里要提到2个概念,一个是源站,一个是回源 Host,他们的含义如下:

  • 源站: 源站决定了回源时,请求到哪个IP,如果回源直接填的是 IP 地址,则回源就会请求对应的 IP,如果回源请求的是回源域名,则 CDN 也会先将域名解析成 IP 地址后进行回源.
  • 回源 Host:回源 Host 决定回源请求访问到该IP上的哪个站点,一个 web 服务器可以有多个站点,每个站点其对应的 Host 都不一样,默认情况下,CDN 回源会以加速域名作为回源 Host 来请求源站.

操作步骤

在 CDN 列表中,找到对应的加速域名,点击进入 CDN 详情页,点击【设置】

然后修改回源 Host

案例说明

为了更清楚的了解回源域名和回源 Host 的区别,我们通过案例来讲解下。

假设源站是一台 nginx web 服务器,公网 IP 是 59.111.10.11,其 vhost(虚拟主机) 配置如下

server {

      listen 80;
      server_name www.awen.me blog.awen.me awen.me;
      index index.html index.htm;
      root  /www/www;
      ……


可以看到这个 server 的 server_name 值为 www.awen.me blog.awen.me awen.me

那么,现在希望通过 CDN 加速我这个 www.awen.me 这个域名,在网易云创建一个 CDN

点击创建后,配置好 CNAME 解析就可以正常访问了。

举例

假设源站有个 Vhost (虚拟主机),其域名是 src.awen.me

server_name src.awen.me;

对应的一个图片 url 如下:

http://src.awen.me/common/fileDownload/lk-upload1/2e57b7f8-05b2-4365-b7ac-4d74c83152c9.jpg

通过 img.awen.me 这个域名进行加速访问源站 src.awen.me 的资源,上面说了,默认情况下回源 Host 是会把加速域名作为回源 Host 带到源站去请求的,但是我们源站并没有 img.awen.me 这个域名对应的站点,那就无法访问对应的资源,因此这个时候我们需要修改回源 Host 为源站已经存在的域名 src.awen.me。

对 curl 命令比较熟悉,可以通过下面的方式带上 Host 测试源站是否访问正常,得到结果如下:

 curl -H "Host: src.awen.me" http://src.awen.me/common/fileDownload/lk-upload1/2e57b7f8-05b2-4365-b7ac-4d74c83152c9.jpg -v

< HTTP/2 200
HTTP/2 200
< server: nginx/1.15.3
server: nginx/1.15.3
< date: Wed, 24 Oct 2018 06:52:58 GMT
date: Wed, 24 Oct 2018 06:52:58 GMT
< content-length: 1008935

这里的 Host 就是你的回源 Host 域名,假设现在我们回源 Host 填写一个源站不存在的域名,那则会返回 404

 curl -H "Host: img.awen.me" http://src.awen.me/common/fileDownload/lk-upload1/2e57b7f8-05b2-4365-b7ac-4d74c83152c9.jpg -v

    < HTTP/2 404
    HTTP/2 404
    < server: nginx/1.15.3
    server: nginx/1.15.3
    < date: Wed, 24 Oct 2018 06:52:58 GMT
    date: Wed, 24 Oct 2018 06:52:58 GMT