EAS Hosting 生产部署怎么绑定自定义域名并通过 DNS 验证与 SSL 配置?

发布时间:2026/9/10 19:14:42
EAS Hosting 生产部署怎么绑定自定义域名并通过 DNS 验证与 SSL 配置? EAS Hosting 生产部署怎么绑定自定义域名并通过 DNS 验证与 SSL 配置【免费下载链接】expoAn open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.项目地址: https://gitcode.com/GitHub_Trending/ex/expo默认情况下Expo 项目中部署到 EAS Hosting 的生产环境地址是my-app.expo.app这种形式my-app是你选择的 preview subdomain name。如果你自有域名可以把它作为自定义域名绑定到项目的生产部署上让example.com直接路由到你的生产环境。这篇文章描述完整的绑定路径先把一个部署提升到 production再到 Hosting settings 里填写自定义域名然后在你的 DNS 服务商处添加三条记录域名验证、SSL、路由最后等仪表盘检查全部通过。前提条件在开始之前需要满足以下三个条件均来自 EAS Hosting 官方文档一个已有生产部署的 EAS Hosting 项目。自定义域名只会加载 production deployment所以项目里必须先有一个被提升到 production 的部署。如果还没有在项目目录中执行npx expo export --platform web eas deploy --prod第一次运行eas deploy会提示你关联 EAS 项目并选择 preview subdomain name。已有部署也可以事后提升eas deploy:alias --prod --iddeploymentId其中deploymentId是 preview URL 中的部署 ID详见 Deployments and aliases。一个你拥有且可以管理 DNS 记录的域名。apex 域如example.com和子域如anything.example.com都支持。付费套餐。自定义域名是 premium featureFree plan 不可用见 Custom domain。每个项目只能绑定一个自定义域名它固定指向该项目的生产部署。在仪表盘填写自定义域名在 expo.dev 的项目 dashboard 中进入Hosting settingsexpo.dev/accounts/[accountName]/projects/[projectName]/hosting/settings路径下的 Hosting 设置页。如果没有 production deployment界面会先提示你指定一个生产部署。在Custom domain一栏填入要绑定的域名。填写后仪表盘会给出三条需要在 DNS 服务商处添加的记录分别对应Verification证明你拥有该域名SSL用于配置 SSL 证书CNAME子域或A recordapex 域把域名指向你的生产部署。添加三条 DNS 记录三条记录的具体含义和落点如下example.com为文档中的示例域名请替换为你自己的域名记录类型记录所在主机名指向 / 作用Verification TXT_cf-custom-hostname.example.com证明域名所有权。记录带有一个自定义 tokenEAS Hosting 可以读回该 token 来确认你在操作自己控制的域名SSL CNAME_acme-challenge.example.com向证书颁发机构证明域名所有权Domain Control ValidationDCV。做成 CNAME 是因为证书的续期和验证都交给自动化流程防止证书过期路由记录域名本身apex 域A record 到172.66.0241文档原值为172.66.0.241子域CNAME 到origin.expo.app几点说明前两条验证记录都创建在你所设置的自定义域名的子域上。如果你设置的是anything.example.com对应主机名就是_cf-custom-hostname.anything.example.com和_acme-challenge.anything.example.com。路由记录对 apex 域和子域是等价的两种写法但有些 DNS 服务商不允许在 apex 域上设置 CNAME所以 apex 域通常用 A record子域用 CNAME。关于零停机如果你要求切换域名时零停机必须按仪表盘给出的顺序逐条添加记录——先加 Verification TXT 并点 Refresh 直到 UI 确认该记录再加 SSL CNAME 并确认最后才加第三条路由记录。如果不在意短暂停机三条记录可以一次性全部添加。验证结果添加完记录后回到 Hosting settings 页面反复点击Refresh按钮直到所有检查项checks全部通过。文档说明这一步通常只需要几分钟具体取决于 DNS 服务商的生效速度。三项检查都通过后自定义域名就会路由到你的production部署。后续即使你用--prod或eas deploy:alias --prod --iddeploymentId把生产部署切换到新的部署 ID自定义域名始终跟随当前生产部署无需重新配置。可选为其他别名配置子域虽然每个项目只能绑定一个自定义域名但可以额外添加子域 DNS 记录来处理生产别名以外的请求请求会路由到别名与子域匹配的那个部署。例如先创建一个staging别名eas deploy --alias staging然后在 DNS 中添加如果自定义域名是 apex 域example.com在staging.example.com上创建 CNAME 记录指向origin.expo.app如果自定义域名是子域anything.example.com在staging.anything.example.com上创建同样的 CNAME 记录。也可以设置通配符在*.example.com或*.anything.example.com上创建 CNAME 记录指向origin.expo.app任何子域请求都会被尝试路由到同名的别名部署。例外是www子域如果存在www子域且没有名为www的别名请求会收到 308 响应并重定向到自定义域名按生产部署处理。如果只想做这个自动重定向只需在www.yourdomain上创建 CNAME 记录指向origin.expo.app。注意如果是在2025 年 3 月 19 日之前已经设置好自定义域名的项目先按上文流程点一次 Refresh再执行通配符域名的配置。限制与注意事项仅限付费套餐且每个项目一个自定义域名。EAS Hosting 使用SNIServer Name IndicationIP 地址是共享的、不专属某个项目见 Deployments and aliases 的 FAQ因此绑定依赖域名解析与 SNI 匹配而不是固定 IP。三条 DNS 记录的值验证 token、A record IP、CNAME 目标以你所在项目 Hosting settings 页面实时展示为准本文中的172.66.0.241、origin.expo.app均为文档给出的典型值。【免费下载链接】expoAn open-source framework for making universal native apps with React. Expo runs on Android, iOS, and the web.项目地址: https://gitcode.com/GitHub_Trending/ex/expo创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考