全部产品
云市场

绑定自定义域名

更新时间:2019-07-02 10:08:26

绑定自定义域名可以允许用户通过自定义域名访问 FC 的函数,配合 HTTP 触发器使用,为使用函数计算搭建 Web 服务提供便利。

您可以在函数计算上绑定自定义域名,并设置不同路径到不同服务的不同函数,然后就可以通过自定义域名访问不同的函数了。

应用场景

例如,您拥有一个域名为 api.app.com 的网站,从成本和弹性扩容角度考虑,您希望将 Web 服务迁移至函数计算,并且不影响外部服务,也就是对外提供服务的链接不变,那么您可以为您的服务绑定自定义域名。

流程对比:

流程 自定义域名绑定前 自定义域名绑定后
部署阶段 1.编写应用代码并部署到用户服务器
2.为域名备案
3.设置 DNS 解析到用户服务器 IP
4.利用 web 框架设置路径和服务的对应关系
1.在函数计算为应用编写函数并设置 HTTP 触发器
2.域名在阿里云备案或接入阿里云备案
3.DNS 解析到 FC 地址:<accountID>.<region>.fc.aliyuncs.com
4. 在 FC 绑定域名,并设置路径与函数的对应关系
访问阶段 1.访问 api.app.com/login
2.DNS 解析到用户服务器 IP
3.api.app.com/login 访问用户服务器的服务
1.访问 api.app.com/login
2.DNS 解析到 FC 地址
3.api.app.com/login 访问部署在 FC 的函数

使用流程

  • 使用 HTTP 触发器搭建 Web Server ;
  • 绑定自定义域名
    • 步骤一: 域名需要在阿里云备案或接入阿里云备案(海外集群不需要备案);
    • 步骤二:域名需要解析到您的 endpoint 上,即需要设置域名的 CNAME 到您对应区域的 endpoint,先设置 CNAME 再到函数计算进行绑定;
      • 域名解析请参考文章 设置域名解析
      • 例如:您的域名为 app.com,您的 accountID 为 12345,区域为上海,需要设置 app.com 的 CNAME 为 12345.cn-shanghai.fc.aliyuncs.com
    • 步骤三:在函数计算绑定自定义域名,并设置不同的路径到不同函数。
      • 同一域名绑定的函数必须在同一区域,可以属于不同服务
      • 例如,您可以设置路径 “/a” 的请求到 service1function1 执行,设置路径 “/b” 的请求到 service2function2 执行;
      • 只有设置了 HTTP 触发器 的函数才可以通过自定义域名的请求触发执行。

路由匹配规则

您需要在自定义域名处设置路径和函数的对应关系,即请求的路径不同可以触发不同函数执行。函数计算支持精确匹配和模糊匹配,具体规则如下:

  • 支持精确匹配和模糊匹配。
    • 精确匹配是设置的路径和到来的请求完全一致才可以匹配,例如 /a 触发服务 s1 下的 f1(以下统一简写成 s1/f1),那么路径为 /a/ 的请求无法触发 f1 的执行。
    • 支持通配符 *,且只能放到路径的最后,比如 /login/* 表示路径前缀为 /login/ 的请求,/login/* 对应 s2/f2,那么 /login/a/login/b/c/d 都会触发 f2 的执行。
  • 匹配顺序为:精确匹配 -> 模糊匹配
  • 匹配优先级为:最长前缀匹配

示例:域名为 api.app.com,设置的路由匹配规则如下:

Path ServiceName FunctionName
/ s1 f1
/* s2 f2
/login s3 f3
/login/a s4 f4
/login/* s5 f5

最终的匹配结果:

RequestURI MatchedServiceName MatchedFunctionName MatchedPath
api.app.com s1 f1 /
api.app.com/user s2 f2 /*
api.app.com/login s3 f3 /login
api.app.com/login/a s4 f4 /login/a
api.app.com/login/a/b s5 f5 /login/*
api.app.com/login/b s5 f5 /login/*

上传 HTTPS 证书

如果需要使用 HTTPS 协议访问自定义域名,需要您将证书和私钥上传至 FC,私钥和证书需要遵循 PEM 格式,且大小不超过 4K。

设置 CDN 回源

函数计算支持为 Web 应用开启 阿里云 CDN 加速功能,为函数计算开启 CDN 加速服务,能够将部署在函数计算的应用作为源站,将源内容发布到边缘节点。阿里云 CDN 精准的调度系统将用户的请求分配至最适合的节点,使终端用户以最快的速度读取到所需的内容,有效降低访问时延,提高服务质量。

您只需要在控制台绑定自定义域名时设置加速域名即可,详情请参考 CDN 回源至函数计算

使用控制台绑定自定义域名示例

  1. 登录 函数计算控制台控制台1
  2. 在控制台首页右侧点击进入 自定义域名管理,即可绑定自定义域名并设置路由。控制台2控制台3

  3. 上传证书控制台4

相关链接

您在使用过程中遇到任何问题,请 联系我们