域名配置规范
长度限制为1 - 80,以下三种使用格式:
- 正则表达式格式:正则表达式以'~'开头,支持 nginx 原生的正则表达式。
- 非正则表达式格式:非正则表达式格式只能使用字母、数字、‘-’、‘.’。
- 通配符格式:通配符格式的使用 ‘*’ 只能在开头或者结尾。
域名匹配原则
匹配优先级:首先精准匹配,之后通配符匹配,最后正则匹配。
- 在转发域名中配置完整域名,并在转发路径中配置多个 URL,通过域名 +URL 进行访问。
- 转发域名中不配置域名,填写 IP 代替,并在转发路径中配置多个 URL,通过 VIP+URL 进行访问。
- 在转发域名配置通配符域名,并在转发路径中配置多个 URL,通过匹配请求域名 +URL 进行访问。以 cpm.qcould.com 为例,格式如下:
- cpm.qcloud.com 精确匹配 cpm.qcloud.com 域名。
- *.qcloud.com 匹配所有以 qcloud.com 结尾的域名。
- cpm.qcloud.* 匹配所有以 cpm.qcloud 开头的域名。
- 如果请求域名匹配不到任意一条转发域名,则会返回404。
URL 配置规范
长度限制为1 - 80,以下使用格式:
- 修饰符格式如下:
- /a.html 完整路径匹配。
- /test/ 部分起始路径匹配。
- / 通用匹配,如果没有其它匹配,任何请求都会匹配到。
- 有修饰符格式,修饰符可以使用:
- = 开头表示精确匹配。
- ^~ 开头表示uri以某个常规字符串开头,不是正则匹配。
- ~ 开头表示区分大小写的正则匹配。
- ~* 开头表示不区分大小写的正则匹配。
- 非正则表达式可用的字符包括字母、数字、‘_’、‘-’、‘.’、‘&’、‘#’、‘?’、‘%’、‘/’。
URL 匹配原则
匹配优先级:(=) > (^~ 路径) > (~,~* 正则顺序(匹配到多个正则,取命中的第一个)) > (完整路径) > (部分起始路径) > (/)
- 客户已配置如下 URL 规则:=/test1、^~/test1、~/test1、~*/test1、/test1,当使用 /test1 进行访问时,转发至 =/test1 规则,下发到此 URL 下 RS。
- 客户先后配置如下 URL 规则:~/11_*、~/*_1,当使用 /11_1 进行访问时,两个 URL 都命中,但转发至第一个 ~/11_* 规则。
- 客户先后配置如下 URL 规则:/test1、/test1/test2,当使用 /test1 进行访问时,转发至 /test1 规则。
- 客户先后配置如下 URL 规则:/test1/test2、/test3,当使用 /test1/test2/test3 进行访问时,转发至 /test1/test2 规则。
注意建议用户设置 default URL(/),将其指向服务稳定的页面,并绑定所有后端物理主机,此时如果所有规则均没有匹配成功时,转发至 default URL 所在页面,否则可能会出现404问题。
健康检查 URL 配置规范
默认/,必须以/开头,长度限制为 1 - 80,可用的字符包括字母、数字、‘_’、‘-’、‘.’、‘&’、‘#’、‘?’、‘%’、‘/’;不支持正则表达式。
域名与 URL 转发规则
域名与 URL 转发结构图如下所示:
实现一个监听器下,多域名及多 URL 路径转发,存在如下规则:
- 一个 LB 中可新建多个 LB 监听器。
- 一个 LB 监听器下可建多个转发域名(转发域名不能相同)。
- 一个转发域名下可建多个转发URL(转发 URL 不能相同)。
- RS 绑定到转发 URL 下。
- 针对转发 URL 来设置健康检查与会话保持。
- 转发 URL 下每台 RS 可单独设置后端端口与权重。
- 客户使用域名 +URL 进行访问服务。
- 形成 LB、监听器、转发域名、转发 URL、RS 五级灵活配置。