
引言CDN与负载均衡的协同价值在云计算架构中内容分发网络CDN与负载均衡SLB是保障业务高性能与高可用的两大核心服务。CDN通过遍布全球的边缘节点将静态与动态内容就近分发至终端用户显著降低访问延迟、减轻源站压力。负载均衡则通过将流量按需分发至多台后端服务器消除单点故障、提升系统吞吐能力。两者协同工作可构建从用户端到源站的全链路加速与高可用体系——CDN负责“最后一公里”的加速分发SLB负责源站侧的流量治理与容灾。本文将从实战角度出发系统讲解阿里云CDN的接入配置流程、负载均衡SLB的完整配置方法以及两者联动的典型场景与最佳实践。文章涵盖控制台操作、命令行工具与SDK代码示例适用于从运维新手到架构师的不同技术层次读者。需要先登录阿里云控制台点击阿里云控制台第一部分阿里云CDN接入与配置详解一、CDN工作原理与核心优势阿里云CDNContent Delivery Network是一个分布式缓存系统在网络拓扑中位于源站服务器与用户之间。当用户发起资源请求时请求首先到达就近的CDN边缘节点。若节点已缓存目标资源则直接返回缓存内容无需回源若未缓存或缓存已过期CDN节点向源站发起回源请求获取资源后缓存至边缘节点并返回给用户。这一机制实现了“一次回源、多次分发”大幅降低源站压力并提升用户访问速度。CDN的核心优势体现在三个方面一是对源站服务器的非侵入性无需修改任何业务代码即可完成接入二是通过分布式边缘节点布局实现就近访问显著降低网络延迟三是提供丰富的可配置能力包括缓存策略、HTTPS加密、访问控制、智能压缩等高级功能。二、CDN接入前置条件在开始CDN配置之前需确保满足以下前提条件已开通阿里云CDN服务在控制台按提示开通即可准备一个已完成ICP备案的加速域名中国大陆区域加速必须备案明确源站类型OSS域名、IP地址、源站域名或函数计算域名确认源站已部署业务应用并可正常访问三、添加加速域名登录CDN控制台后在左侧导航栏单击“域名管理”进入域名管理页面。单击“添加域名”按钮进入域名配置流程。3.1 配置基本信息在域名信息配置页面需要完成以下核心参数的设置加速区域根据业务用户分布选择“中国内地”、“全球不含中国内地”或“全球”。选择“全球”时CDN会为不同区域的用户分配最近的边缘节点。加速域名填写需要加速的业务域名例如static.example.com。加速域名是终端用户实际访问的域名。业务类型根据内容类型选择“图片小文件”、“大文件下载”、“视音频点播”或“全站加速”。不同业务类型对应不同的默认缓存策略与加速优化方向。3.2 配置源站信息源站是CDN获取原始内容的来源支持以下三种类型OSS域名选择阿里云OSS Bucket作为源站适用于静态资源存储场景。IP填写源站服务器的公网IP地址适用于自建服务器场景。源站域名填写源站服务器的域名适用于通过域名访问源站的场景。在配置多源站时可设置主备优先级与权重。当多个源站优先级相同时CDN按照权重比例分配回源请求。主源站优先级高于备源站所有回源流量优先回源主源站若主源站健康检查连续失败则自动切换至备源站。对于使用OSS私有Bucket作为源站的场景必须开启“阿里云OSS私有Bucket回源”功能。开启后系统会提示授权CDN访问OSS资源的权限并在RAM中自动创建AliyunCDNAccessingPrivateOSSRole角色。若未开启此功能CDN节点将因权限不足无法回源导致访问返回403错误。3.3 域名归属权验证首次在CDN或DCDN控制台添加新域名时需要完成域名归属权验证。验证方式通常包括在域名DNS解析中添加指定的TXT记录或上传验证文件至源站根目录。验证通过后域名才能正式接入CDN服务。四、配置CNAME解析域名添加完成后CDN会为加速域名分配一个CNAME地址。需要在域名DNS服务商处将加速域名通过CNAME记录解析到CDN分配的CNAME地址。以阿里云云解析DNS为例操作步骤如下登录云解析DNS控制台找到加速域名对应的解析记录添加一条CNAME记录记录值填写CDN控制台显示的CNAME地址。完成CNAME解析后所有指向加速域名的请求将被自动导向CDN边缘节点。添加CNAME记录后返回CDN控制台域名管理页面当CNAME状态显示“配置完成”时说明加速域名已成功接入CDN。五、HTTPS证书配置HTTPS证书配置是保障传输安全的核心环节。阿里云CDN支持在CDN节点上部署SSL证书实现用户到CDN节点的HTTPS加密传输。配置步骤如下在CDN控制台左侧导航栏选择“证书服务”单击“配置证书”。可以选择阿里云SSL证书服务中已有的证书也可以上传第三方证书。若需要实现全链路HTTPS加密还需配置CDN节点以HTTPS协议回源到源站服务器此时源站服务器必须支持HTTPS协议。对于源站IP绑定了多个域名且回源协议为HTTPS的场景需配置回源SNIServer Name Indication指明所请求的具体域名源站根据SNI名称返回对应域名的SSL证书。六、缓存策略配置缓存策略是提升CDN加速效果的核心。通过配置缓存过期时间规则可以精细化控制CDN节点的资源缓存时长在内容更新、访问性能与回源成本之间取得平衡。6.1 缓存规则配置方法在CDN控制台的域名管理页面单击目标域名右侧的“管理”在左侧导航栏选择“缓存配置” “缓存过期时间”单击“添加”配置缓存规则。规则可按目录或文件扩展名指定生效范围。6.2 缓存策略最佳实践静态资源长缓存图片jpg/png/gif、视频mp4/flv、CSS、JS等静态资源更新频率低可设置较长的缓存过期时间如7天或30天最大化缓存命中率。动态资源短缓存或不缓存PHP、JSP、ASP等动态页面不建议缓存或设置极短的缓存时长如0秒或60秒避免内容不一致。忽略URL参数对于带动态参数但内容不变的资源如图片预览链接可通过忽略参数缓存规则提升缓存利用率。权重管理多条缓存规则同时命中时权重值高的规则优先生效。若需要配置整个域名不缓存可通过设置全路径缓存过期时间为0来实现并确保该规则权重最高。七、访问控制与安全防护CDN提供多重安全防护机制防盗链通过验证请求的Referer字段防止其他网站盗用资源。IP黑白名单设置允许或禁止访问的IP地址或IP段。区域封禁按地理位置限制访问适用于特定区域业务合规需求。第二部分阿里云负载均衡SLB配置详解一、SLB产品体系与选型阿里云负载均衡SLB并非单一产品而是包含三种不同形态的负载均衡家族。正确选型是配置流量分发规则的第一步。1.1 应用型负载均衡ALBALB面向七层应用HTTP/HTTPS/gRPC/QUIC是当前阿里云主推的负载均衡产品。它支持内容路由、域名转发、URL路径转发、重定向、SSL卸载等高级功能单实例可支撑百万级QPS。ALB基于TengineNginx增强版实现七层负载均衡具备更强的应用层流量调度能力。适用于Web网站、API服务、微服务架构等绝大多数场景。1.2 网络型负载均衡NLBNLB专注于四层网络协议TCP/UDP基于高性能网络转发架构设计单实例支持亿级并发连接转发延迟低至微秒级。适用于实时音视频、游戏服务器、高性能数据库代理等对性能要求极高的场景。1.3 传统型负载均衡CLBCLB是阿里云早期的经典负载均衡产品兼容四层TCP/UDP和七层HTTP/HTTPS负载均衡配置相对简单。但CLB不支持域名与URL路径转发等高级七层特性目前正逐步被ALB替代。对于简单的负载均衡场景或传统业务迁移CLB仍可满足需求。1.4 选型建议综合来看Web网站和API服务优先选择ALB高性能四层业务如游戏、直播选择NLB传统简单业务或成本敏感场景可选择CLB。后续配置将主要基于ALB展开部分通用配置同样适用于CLB的七层监听场景。二、SLB核心概念解析在开始配置之前需理解以下核心概念实例InstanceSLB的核心资源实体包含虚拟服务地址VIP、监听规则、服务器组关联关系等是流量转发的核心载体。监听ListenerSLB接收用户请求的入口包含协议HTTP/HTTPS/TCP/UDP、端口、转发规则等配置。一个实例可创建多个监听例如同时监听80端口的HTTP和443端口的HTTPS。服务器组Server Group后端服务器的逻辑集合包含ECS实例、ENI弹性网卡、IP地址等类型用于统一管理后端节点的端口、权重和健康检查规则。调度算法Scheduling AlgorithmSLB分发流量的策略常用的有加权轮询、加权最小连接数、一致性哈希等。三、环境准备与前提条件在对接负载均衡前需完成以下准备工作账号与权限拥有阿里云账号并完成实名认证建议使用RAM子账号进行权限管理遵循最小权限原则。RAM子账号需授予SLB管理权限如AliyunSLBFullAccess及ECS、VPC相关权限。网络规划负载均衡实例与后端服务器如ECS需位于同一地域。ALB/CLB实例创建后所属VPC无法修改需提前规划VPC与子网。后端服务器准备至少2台同地域ECS实例或IDC服务器、函数计算服务确保后端服务器已部署应用并正常运行。四、创建负载均衡实例以ALB为例创建实例的操作步骤如下登录负载均衡控制台左侧导航栏选择“应用型负载均衡ALB” “实例”点击“创建应用型负载均衡”。在创建页面配置以下参数计费方式按量付费或包年包月地域与可用区选择与后端ECS相同的地域建议选择多可用区部署以实现跨可用区容灾实例网络类型公网或私网。公网实例分配公网IP私网实例仅在VPC内网访问VPC与交换机选择已规划好的VPC和交换机五、配置服务器组服务器组是后端服务器的逻辑集合。创建服务器组的步骤如下在ALB控制台左侧导航栏选择“服务器组”单击“创建服务器组”。配置以下关键参数服务器组名称自定义建议按业务命名后端协议HTTP或HTTPS七层监听调度算法选择“加权轮询”、“加权最小连接数”或“一致性哈希”添加后端服务器选择ECS实例并为每个实例设置权重权重值越高分配到的请求越多六、配置监听与转发规则6.1 创建监听监听是SLB接收请求的入口。在实例详情页的“监听”页签下单击“添加监听”。配置以下参数监听协议与端口HTTP/80、HTTPS/443、TCP或UDP默认服务器组选择已创建的服务器组启用HTTPS若选择HTTPS协议需配置SSL证书6.2 配置转发规则七层监听对于HTTP/HTTPS监听ALB支持基于域名和URL路径的精细化转发规则。可以在一个监听下添加多条转发策略每条转发策略关联不同的服务器组。配置示例将api.example.com的请求转发至API服务器组将www.example.com的请求转发至Web服务器组或将/images/*路径的请求转发至图片服务器组将/api/*路径的请求转发至API服务器组。转发规则的优先级通过数值控制取值范围1~10000数值越小优先级越高。未匹配任何转发规则的请求默认转发至监听配置的默认服务器组。七、健康检查配置健康检查是SLB保障业务高可用的核心机制。负载均衡通过定期向后端服务器发送探测请求判断服务器的业务可用性。健康检查机制提高了前端业务的整体可用性避免了后端异常节点对总体服务的影响。7.1 健康检查参数调优主要健康检查参数包括健康检查协议HTTP、HTTPS、TCP或UDP健康检查路径HTTP/HTTPS后端服务器用于健康检查的URL路径如/health健康检查间隔两次健康检查的时间间隔建议2-5秒健康检查超时时间等待健康检查响应的超时时间健康阈值连续成功多少次后判定服务器为健康不健康阈值连续失败多少次后判定服务器为不健康7.2 健康检查注意事项CLB执行健康检查时使用100.64.0.0/10网段。后端服务器务必不能屏蔽该地址段。无需在ECS安全组中额外配置放行策略但如有配置iptables等安全策略请务必放行该网段。八、会话保持配置会话保持功能确保来自同一客户端的访问请求被分发到同一台后端服务器上保障用户状态信息的一致性。对于需要保持用户登录状态或购物车信息的业务场景会话保持是必须开启的功能。在ALB中会话保持配置在服务器组级别。开启会话保持后ALB会基于用户请求中的特定标识如Cookie或客户端IP将同一用户的请求始终路由到同一台后端服务器。需要注意的是同时开启负载均衡和会话保持功能有可能会造成后端服务器访问不均衡。如果出现访问不均衡的情况建议暂时关闭会话保持功能进行排查。九、安全加固SLB提供多层次的安全防护能力。可以通过为ALB实例添加安全组实现黑白名单访问策略。白名单模式仅允许来自所设IP地址或地址段的请求通过自动拒绝未列入的IP。黑名单模式则自动允许未列入的IP访问。配置安全组规则时应避免对ALB的Local IP添加优先级为1的拒绝策略以确保安全组规则不会与ALB托管安全组策略冲突。第三部分CDN与负载均衡的联动场景一、CDN GTM实现源站高可用CDN本身并不能感知源站IP的运行状态在源站故障场景下无法快速将用户流量切换至正常地址。全局流量管理GTM可以帮助企业实现流量负载均衡、故障检查及自动切换。CDN和GTM都是通过CNAME域名提供服务的。若将相同子域名同时指向不同的CNAME域名权威DNS采用轮询方式应答会导致其中一个产品无法正常使用。因此面对CDN加速GTM源站容灾场景建议采用串行方式。配置流程如下配置GTM在云解析DNS控制台的全局流量管理中创建地址池包含主备源站IP开启健康检查配置基于地理位置的访问策略。复制GTM的CNAME接入域名在GTM基本配置页签下复制CNAME接入域名。配置CDN加速在CDN控制台添加加速域名时将源站域名设置为GTM的CNAME接入域名。配置CNAME解析在云解析DNS中将业务域名通过CNAME解析指向CDN分配的CNAME地址。通过这种串行架构用户流量先到达CDN边缘节点CDN再以GTM作为源站由GTM智能地将请求路由到健康的源站服务器。二、CDN多源站权重实现回源侧负载均衡阿里云CDN支持配置多个源站地址并支持设置源站的主备优先级和权重实现回源侧的负载均衡。当多个源站优先级相同时CDN按照权重比例分配回源请求。这一机制适用于以下场景多源站负载均衡同时使用多个源站如不同地域的OSS Bucket或服务器分担回源流量主备容灾设置主源站和备源站按权重分配请求量主源站故障时自动切换至备源站配置方式在CDN域名管理的源站配置中添加多个源站地址为每个源站设置优先级和权重值。权重值越高分配到的回源请求比例越大。三、CDN SLB的典型架构在典型的企业级架构中CDN与SLB常常协同工作。用户请求经CDN加速后CDN节点回源时不是直接回源到单个服务器而是回源到SLB的虚拟服务地址VIP。SLB再将请求分发到后端的多个ECS实例。这种架构的优势在于CDN负责边缘加速与缓存SLB负责源站侧的负载均衡与高可用。当后端ECS实例需要扩缩容时只需调整SLB服务器组中的实例即可对CDN侧完全透明。SLB的健康检查机制会自动屏蔽故障节点确保回源请求始终到达健康的服务器。第四部分自动化配置代码示例一、阿里云CLI配置CDN阿里云CLI是管理云资源的命令行工具适合自动化运维场景。首先通过aliyun configure命令配置身份凭证和默认区域。查询用户名下所有CDN域名的命令示例aliyun cdn DescribeUserDomains --PageSize 50 --PageNumber 1添加CDN加速域名的命令示例aliyun cdn AddCdnDomain --DomainName static.example.com --CdnType web --Sources [{\type\:\oss\,\content\:\example-bucket.oss-cn-hangzhou.aliyuncs.com\}] --Region global二、阿里云CLI配置负载均衡创建ALB实例的命令示例aliyun alb CreateLoadBalancer --LoadBalancerName my-alb --VpcId vpc-xxxxx --AddressType Internet --ZoneMappings [{\ZoneId\:\cn-hangzhou-g\,\VSwitchId\:\vsw-xxxxx\}]创建服务器组的命令示例aliyun alb CreateServerGroup --ServerGroupName web-sg --VpcId vpc-xxxxx --Scheduler Wrr --Protocol HTTP --HealthCheckConfig {\HealthCheckEnabled\:true,\HealthCheckPath\:\/health\}三、Python SDK配置示例阿里云提供丰富的SDK支持以下使用Python SDK演示CDN与SLB的自动化配置。3.1 Python SDK配置CDNfrom aliyunsdkcore.client import AcsClient\nfrom aliyunsdkcdn.request.v20180510 import AddCdnDomainRequest\n\nclient AcsClient(\n access_key_idyour-access-key-id,\n access_secretyour-access-secret,\n region_idcn-hangzhou\n)\n\nrequest AddCdnDomainRequest.AddCdnDomainRequest()\nrequest.set_DomainName(static.example.com)\nrequest.set_CdnType(web)\nrequest.set_Sources([{\type\:\oss\,\content\:\example-bucket.oss-cn-hangzhou.aliyuncs.com\}])\nrequest.set_Region(global)\n\nresponse client.do_action_with_exception(request)\nprint(response)3.2 Python SDK配置负载均衡from aliyunsdkcore.client import AcsClient\nfrom aliyunsdkalb.request.v20200616 import CreateLoadBalancerRequest\n\nclient AcsClient(\n access_key_idyour-access-key-id,\n access_secretyour-access-secret,\n region_idcn-hangzhou\n)\n\nrequest CreateLoadBalancerRequest.CreateLoadBalancerRequest()\nrequest.set_LoadBalancerName(my-alb)\nrequest.set_VpcId(vpc-xxxxx)\nrequest.set_AddressType(Internet)\nrequest.set_ZoneMappings([{\ZoneId\:\cn-hangzhou-g\,\VSwitchId\:\vsw-xxxxx\}])\n\nresponse client.do_action_with_exception(request)\nprint(response)四、Terraform基础设施即代码阿里云CDN与SLB均已接入Terraform可通过IaC方式实现资源管理。以下是一个简单的Terraform配置示例provider \alicloud\ {\n region \cn-hangzhou\\n}\n\nresource \alicloud_cdn_domain_new\ \cdn_domain\ {\n domain_name \static.example.com\\n cdn_type \web\\n sources {\n type \oss\\n content \example-bucket.oss-cn-hangzhou.aliyuncs.com\\n priority 20\n port 80\n weight 10\n }\n}\n\nresource \alicloud_alb_load_balancer\ \alb\ {\n load_balancer_name \my-alb\\n vpc_id \vpc-xxxxx\\n address_type \Internet\\n zone_mappings {\n zone_id \cn-hangzhou-g\\n vswitch_id \vsw-xxxxx\\n }\n}第五部分常见问题与最佳实践一、CDN配置常见问题域名添加后状态一直显示“审核中”或“配置中”等待几分钟后状态会自动变为“正常运行”。配置CNAME后访问仍不生效检查DNS解析是否已生效DNS生效通常需要几分钟到几小时确认CNAME记录值填写正确。私有Bucket回源返回403检查是否已在CDN回源配置中开启“阿里云OSS私有Bucket回源”功能。缓存未按预期生效检查缓存规则的权重设置高权重规则优先生效确认源站响应头未强制禁用缓存如Cache-Control: no-cache。二、SLB配置常见问题健康检查失败检查后端服务器是否正常运行健康检查路径是否正确确认后端服务器未屏蔽100.64.0.0/10网段。会话保持不生效确认已在服务器组层面开启会话保持功能检查是否存在多个服务器组之间会话保持冲突。转发规则未按预期生效检查转发规则的优先级设置确认规则匹配的域名或URL路径配置正确。ALB实例无法访问检查安全组规则是否限制了入方向流量确认后端服务器已正确添加到服务器组并设置权重。三、最佳实践总结权限管理使用RAM子账号进行日常运维遵循最小权限原则。多可用区部署SLB实例与后端服务器部署在同一地域的多个可用区提升容灾能力。缓存策略精细化根据资源类型和更新频率设置差异化的缓存过期时间。监控与告警配置CDN与SLB的监控告警关注带宽、QPS、健康检查状态等核心指标。成本优化合理设置缓存过期时间提高缓存命中率减少回源流量使用同地域内网访问免流量。结语阿里云CDN与负载均衡SLB是构建高性能、高可用云上架构的关键基础设施。CDN通过边缘加速与缓存分发让内容离用户更近SLB通过流量治理与健康检查让源站更稳定可靠。两者协同工作可构建从用户端到源站的全链路加速与高可用体系。本文从原理到实践从控制台操作到自动化代码系统讲解了CDN与SLB的完整配置方法希望能为读者在云上架构设计与运维实践中提供有价值的参考。问与答问1CDN加速域名添加后CNAME解析大概多久生效答CNAME解析的生效时间取决于DNS服务商的TTL设置通常为几分钟到几小时不等。建议在添加CNAME记录前先将TTL值调小如600秒待解析生效后再调回正常值。问2ALB、NLB和CLB应该如何选择答Web网站、API服务优先选ALB高性能四层业务游戏、直播选NLB传统简单业务或成本敏感场景选CLB。问3CDN回源到OSS私有Bucket时需要注意什么答必须在CDN回源配置中开启“阿里云OSS私有Bucket回源”功能系统会自动完成RAM角色授权。若未开启CDN节点因权限不足无法访问OSS资源会返回403错误。问4SLB健康检查失败通常有哪些原因答常见原因包括后端服务器未正常运行、健康检查路径配置错误、后端服务器屏蔽了健康检查网段CLB为100.64.0.0/10、安全组规则限制了健康检查流量。问5CDN和GTM如何联动实现源站高可用答采用串行架构——先配置GTM地址池与健康检查将GTM的CNAME接入域名作为CDN的源站再将业务域名CNAME解析到CDN。用户请求先到CDNCDN回源时经过GTM由GTM智能路由到健康的源站服务器。问6如何通过自动化方式管理CDN与SLB配置答可使用阿里云CLI、各语言SDKPython/Java/Go等或Terraform进行基础设施即代码管理。通过API/SDK可实现批量域名添加、批量配置修改等自动化运维操作大幅提升管理效率。