CDN 与外部 HTTP(S) 负载均衡器搭配教程–活用URLMaps

一、背景:

                CDN是指一组分布在不同地理位置上的服务器,它们共同工作以提供快速的Internet内容分发。CDN允许快速传输加载Internet内容所需的资源,包括HTML页面、javascript文件、样式表、图像和视频。CDN服务的受欢迎程度持续增长,如今大部分的网络流量都是通过CDN提供的,包括来自Facebook、Netflix和亚马逊等主要网站的流量。cdn是缓解传统主机带来的一些主要问题的流行选择,通过利用缓存来减少主机带宽,帮助防止服务中断,并提高安全性。

               现在利用CDN搭配负载均衡器,通过在负载均衡器上设置特定的URLMaps,实现对源服务器的web服务NGINX根目录下特定的文件目录选择缓存或不缓存,如下:

二、配置:

    2.1 全球外部 HTTP(S) 负载均衡器部署

               2.1.1  forwarding rule 指定外部ip,端口,目标代理,客户端用ip地址和端口来连接负载均衡

               2.1.2  Target HTTP(S) proxy 接收来自客户端的请求。HTTP(S) 代理使用网址映射评估请求,从而做出流量路由决策。该代理还可以使用 SSL 证书对通信进行身份验证

               2.1.3  URL map  当请求到达负载平衡器时,负载平衡器会根据网址映射中定义的规则将请求路由到特定的后端服务或后端存储分区

               2.1.4  Backend service 将请求分配到健康状况良好的后端

               2.1.5  Backends 互联网网络端点组 (NEG) 定义了负载平衡器的外部后端。外部后端是驻留在 Google Cloud 外部的后端

    2.2 使用 Cloud CDN 缓存外部后端的内容

            2.2.1创建两个后端服务,一个用于开启CDN,用来缓存非/cloud/文件目录下的内容,

                                                        一个用来关闭CDN,对/cloud/* 目录文件不进行缓存

 

  •                                      勾选Cloud CDN,CDN的类型选择Force cache all content(Google默认.html文件不属于Static Content)
  •                                      勾选Enable Logging

  •                                      在Custom response headers下面,Header name设置X-Emma(可任取名字), Header value设置{cdn_cache_status},用来抓取log,测试缓存是否命中

 

                 2.2.2.设置两个不同的 Host and path rules,一个将非/cloud/请求路由到开启CDN的后端服务,

                                                                                             一个将带有/cloud/的请求路由到关闭CDN的后端服务

  •                     http://34.107.155.96/网址映射按以下方式将请求的网址定向到后端

                                                                                                                    网址映射方式

  •                   网址映射Host and path rules的配置如下

   2.3  Cloud CDN 与外部 HTTP(S) 负载平衡搭配使用,为用户分发内容

三、测试:

1.终端运行:

curl -v  http://34.107.155.96/cloud/cloud.ace.html

Response 报文结果: cdn_cache_status为hit,命中成功

 

Request报文结果:GCP查询框搜索Logs Explorer ,在http_load_balancer 下查看,cacheHit为true,命中成功,另一个查看方式一样,不再赘述

四 、总结:

                    通过对URLMap活用,实现对特定文件目录进行缓存和不缓存。

Leave a Reply