云服务器内容精选

  • 转发动作的路径支持URL的正则表达式示例 转发动作“重定向至URL”和“重写”中的路径由英文字母、数字和特殊字符_~';@^-%#&$.*+?,=!:|\/()[]{}组成,只能由/开头。${path}表示与源路径相同。 转发规则选择URL的正则匹配后,转发动作的路径支持正则表达式替换。 路径替换流程 URL匹配:客户端发送请求,并匹配到某一条URL转发规则的正则表达式。URL中支持写入一个或多个正则表达式,支持写入多个()。 路径按照正则表达式的规范提取替换变量:转发动作中的路径通过$1来获取( )中的变量,最多可以获取九个变量至$9。 自由组合出目标路径:获取的变量对路径设置中的$1进行替换,最终拼接成重写或重定向的实际路径。 路径替换示例 当客户端发送请求的路径为/test/ELB/elb/index时,匹配转发规则的转发条件/test/(.*)/(.*)/index,经转发路径/$1/$2提取变量后,最终后端服务器接收到的请求路径为/ELB/elb。 表6 路径支持URL的正则表达式替换示例 匹配动作 说明 转发规则:URL 正则匹配 URL正则匹配条件:/test/(.*)/(.*)/index 匹配成功的请求URL:/test/ELB/elb/index 转发动作:重写或重定向至URL 路径 路径替换条件:/$1/$2 提取替换变量 $1:提取出ELB $2:提取出elb 目标路径:/ELB/elb
  • 高级转发策略简介 独享型负载均衡支持开启高级转发策略功能。开启了“高级转发策略”功能后,请参考以下内容为独享型负载均衡添加转发策略。 高级转发策略支持多样化的转发规则和转发动作,便于灵活的分流业务,合理的分配资源。详情见表1。 图1 高级转发策略(独享型)示意图 高级转发策略的实现分为以下四个步骤: 客户端发送请求至ELB。 ELB首先根据事先设置好的高级转发策略中的转发规则匹配请求。 ELB再根据转发规则对应的动作将客户端请求转发至对应的后端服务器进行处理。 最后返回响应至客户端。 表1 高级转发策略支持的转发规则与动作 转发策略设置 描述 转发规则 域名、URL、HTTP请求方法、HTTP请求头、查询字符串、网段。 详见转发规则。 转发动作 转发至后端服务器组、重定向至监听器、重定向至URL、返回固定响应、重写。 详见转发动作。 说明: 转发动作设置为“转发至后端服务器组”时,支持额外添加转发动作:重写。 详情见添加转发动作(可选)。 转发动作支持重写功能陆续上线中,已发布区域请参见转发动作支持重写。
  • 匹配原理 每个HTTP/HTTPS监听器创建后,都会有一个默认的转发策略将请求转发到监听器默认的后端服务器组(即创建监听器时配置的后端服务器组)。 默认转发策略的优先级最低,不参与转发策略排序;可以编辑,但不可删除。 每个请求会按照转发策略的优先级顺序(转发策略编号的数值越小,优先级越高)逐条匹配,一旦能够匹配到一条转发策略,立即按照当前转发策略进行转发。 如果能匹配到监听器的转发策略,则按该转发策略转发请求。 如果不能匹配到监听器的转发策略,则将请求按照默认转发策略进行转发。
  • 请求示例 创建监听器重定向转发策略 POST https://{ELB_Endpoint}/v3/99a3fff0d03c428eac3678da6a7d0f24/elb/l7policies { "l7policy" : { "action" : "REDIRECT_TO_LISTENER", "listener_id" : "e2220d2a-3faf-44f3-8cd6-0c42952bd0ab", "redirect_listener_id" : "48a97732-449e-4aab-b561-828d29e45050" } }
  • 响应示例 状态码: 201 POST操作正常返回。 { "request_id" : "b60d1d9a-5263-45b0-b1d6-2810ac7c52a1", "l7policy" : { "redirect_pool_id" : "768e9e8c-e7cb-4fef-b24b-af9399dbb240", "description" : "", "admin_state_up" : true, "rules" : [ { "id" : "c5c2d625-676b-431e-a4c7-c59cc2664881" } ], "project_id" : "7a9941d34fc1497d8d0797429ecfd354", "listener_id" : "cdb03a19-16b7-4e6b-bfec-047aeec74f56", "redirect_url" : null, "redirect_url_config" : null, "fixed_response_config" : null, "redirect_listener_id" : null, "action" : "REDIRECT_TO_POOL", "position" : 100, "priority" : null, "provisioning_status" : "ACTIVE", "id" : "01832d99-bbd8-4340-9d0c-6ff8f7a37307", "name" : "l7policy-67" } }
  • 响应示例 状态码: 200 操作正常返回。 { "l7policy" : { "redirect_pool_id" : "768e9e8c-e7cb-4fef-b24b-af9399dbb240", "description" : "", "admin_state_up" : true, "rules" : [ { "id" : "c5c2d625-676b-431e-a4c7-c59cc2664881" } ], "project_id" : "7a9941d34fc1497d8d0797429ecfd354", "listener_id" : "cdb03a19-16b7-4e6b-bfec-047aeec74f56", "redirect_url" : null, "redirect_url_config" : null, "fixed_response_config" : null, "redirect_listener_id" : null, "action" : "REDIRECT_TO_POOL", "position" : 100, "priority" : 1, "provisioning_status" : "ACTIVE", "id" : "01832d99-bbd8-4340-9d0c-6ff8f7a37307", "name" : "l7policy-67" }, "request_id" : "6be83ec4-623e-4840-a417-2fcdf8ad5dfa" }