1078
阿里云
如何实现域名 / URL 转发功能__最佳实践_负载均衡-阿里云
概述
负载均衡除了可以通过一个实例,将用户的请求转发到同一组后端服务器上外,还支持为 7 层(HTTP 和 HTTPS)监听基于域名和URL自定义转发策略,来进行更高级、更细致的转发控制。监听按域名和URL转发适用于在同一个负载均衡实例下存在多个业务的场景需求。
您可通过创建虚拟服务器组和配置转发策略实现按域名和URL转发请求。
虚拟服务器组
负载均衡默认是在实例维度上维护后端服务器组,即实例下的所有监听都使用相同的后端服务器组。虚拟服务器组允许用户在监听维度上个性化定义服务器组,即实例下的不同监听可使用不同的后端服务器组,可满足域名和URL转发个性化的需求。
实例维度
负载均衡默认通过实例维度进行调度,其主要特点为:
- 同一监听,前端端口和后端端口可以不同。
- 同一监听,后端端口固定指向相应实例所有后端服务器上的相同端口。
下图显示了负载均衡实例维度的调度。
监听维度
虚拟服务器组则通过监听维度进行调度,其主要特点为:
- 同一监听,前端端口和后端端口可以不同。
- 不同虚拟服务器组,可以包含相同或不同服务器。
- 同一虚拟服务器组内,后端 ECS 可以由不同端口提供服务。
- 同一监听,后端端口可以指向不同服务器的不同端口。
- 支持基于域名和 URL 配置个性化转发策略,更灵活地适配业务需求。
下图显示了虚拟服务器组监听维度的调度。
配置负载均衡监听实现按域名和 URL 转发
您可按照以下方法配置负载均衡监听,实现按域名和 URL 转发:
创建、配置具体承载业务的后端 ECS,明确业务服务端口。
创建虚拟服务器组,选择步骤 1 已准备好的服务器,指定服务端口,并根据服务器规格等因素配置权重。
如何创建虚拟服务器组请参考 创建虚拟服务器组。
根据业务情况,创建 HTTP 或 HTTPS 协议类型的监听,并配置监听。配置监听时,开启 使用虚拟服务器组,并选择步骤 2 中创建好的虚拟服务器组。在配置健康检查时,建议不设置检查端口,后端会匹配相应的端口进行健康检查;若设置了检查端口,后端会对虚拟服务器组内的所有 ECS 的固定端口进行健康检查。
如何创建和配置监听,请参考 配置监听。
配置基于域名及 URL 的转发策略。
如何配置转发策略,请参考 配置转发策略。
转发规则判断机制
对于来自负载均衡实例前端的相关请求,判断规则如下:
- 如果能匹配到相应监听关联的转发策略,则按转发策略,将请求转发到对应的虚拟服务器组;
- 如果未匹配,而对应监听启用并配置了虚拟服务器组,则将请求转发到对应的虚拟服务器组;
- 如果均未匹配,则转发到负载均衡实例后端所有 ECS 。端口为监听配置时指定的 后端端口。
下图显示了转发规则的判断流程。
例如,您添加了三个虚拟服务器组,一个为“Test1”,一个为“Test2”,一个为“Test3”。
在创建 HTTP 监听时,可以选择“使用虚拟服务器组”Test3,如下图所示:
在配置监听转发策略时,设置下图示例中的转发策略规则:
基于如上的设置,其用户访问流量转发判断逻辑如下:
当该监听的流量访问的是 aliyun.com/image 时,将会被转发到 Test2 虚拟服务器组内相应的后端服务器端口上;当流量访问的是 baidu.com/134478 时,将会被转发到 Test1 这个虚拟服务器组内相应的后端服务器端口上。
当该监听的流量访问的都不是以上这两个链接时,将会被转发到监听的“虚拟服务器组” Test3 内相应的后端服务器端口上。
若该监听上没有设置“虚拟服务器组”,那么该监听的流量则会被转发到“已添加的后端服务器”组内。
注意:当您需要根据“相同的域名+不同的URL”进行转发时,建议您配置一个默认转发策略(URL 留空),以免未匹配到的其它 URL 访问出错。
健康检查处理机制
以下表格对比描述了三个维度的健康检查机制:
维度 | 健康检查配置 | 健康检查目标服务器 |
---|---|---|
后端服务器 | 使用配置监听时的健康检查配置 | 所有后端 ECS |
虚拟服务器组 | 使用配置监听时的健康检查配置 | 相应虚拟服务器组包含的服务器 |
转发策略 | 使用配置监听时的健康检查配置 | 相应虚拟服务器组包含的服务器 |
注意:
由于虚拟服务器组中可以对 ECS 配置不同的端口,因此在配置健康检查时不要设置检查端口,否则会导致采用了不一致端口承载服务的服务器健康检查失败。
测试示例
3 台后端 ECS 服务器配置:
服务器 | 监听端口 |
---|---|
服务器_80 | 80 |
服务器_8080 | 8080 |
服务器_8180 | 8180 |
虚拟服务器组配置:
服务器组名 | 包含的服务器及服务端口 |
---|---|
apache_80 | 服务器_80端口 80 |
apache_8080 | 服务器_8080端口 8080 |
apache_8180 | 服务器_8180端口 8180 |
监听配置:
前端端口 | 后端端口 | 启用虚拟服务器组 | 对应虚拟服务器组 |
---|---|---|---|
80 | 80 | 是 | apache_80 |
8080 | 8080 | 否 | 无 |
80 端口转发策略配置:
规则名称 | 域名 | URL | 对应虚拟服务器组 |
---|---|---|---|
前端端口 | www.8180.com | 空 | apache_8180 |
其它配置:
配置项 | 配置值 |
---|---|
负载均衡 VIP | 118.178.168.69 |
本地 hosts 绑定 | 118.178.168.69 www.8180.com |
测试效果:
测试 URL | 访问到的后端服务器 | 说明 |
---|---|---|
https://118.178.168.69 | 服务器_80 | 未匹配到转发策略,但匹配到了监听的虚拟服务器组配置。 |
https://www.8180.com/ | 服务器_8180 | 匹配到转发策略。 |
https://118.178.168.69:8080/ | 服务器_8080 | 未匹配到转发策略和虚拟服务器组配置,转发到后端唯一健康检查成功的服务器。 |
最后更新:2016-12-20 13:19:05
上一篇:
结合云解析实现跨地域负载均衡__最佳实践_负载均衡-阿里云
下一篇:
资源授权定义__RAM资源授权_API 参考_负载均衡-阿里云
云服务器 ECS网络和安全性内网
AutoSnapshotExecutionStatusType__数据类型_API 参考_云服务器 ECS-阿里云
查看诊断报告__实例诊断_性能管理_用户指南(RDBMS)_数据管理-阿里云
域名级别__附录_API文档_云解析-阿里云
RDS插件数据库运维__最佳实践_Eclipse 插件-阿里云
缺失索引建议__性能优化_API 参考_云数据库 RDS 版-阿里云
域名解析防护如何使用?__云解析企业版_产品相关问题_云解析-阿里云
中毒导致 SSH 服务运行异常,出现如下错误:fatal: mm_request_send: write: Broken pipe__远程登录 (SSH)_Linux操作运维问题_云服务器 ECS-阿里云
路由器和路由表__网络_用户指南_专有网络 VPC-阿里云
附录二 SQL函数表__附录_使用手册_分析型数据库-阿里云
相关内容
常见错误说明__附录_大数据计算服务-阿里云
发送短信接口__API使用手册_短信服务-阿里云
接口文档__Android_安全组件教程_移动安全-阿里云
运营商错误码(联通)__常见问题_短信服务-阿里云
设置短信模板__使用手册_短信服务-阿里云
OSS 权限问题及排查__常见错误及排除_最佳实践_对象存储 OSS-阿里云
消息通知__操作指南_批量计算-阿里云
设备端快速接入(MQTT)__快速开始_阿里云物联网套件-阿里云
查询API调用流量数据__API管理相关接口_API_API 网关-阿里云
使用STS访问__JavaScript-SDK_SDK 参考_对象存储 OSS-阿里云