微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将 zappa 应用程序部署到 https://www.my_domain.com 和 https://my_domain.com API 网关配置Route 53 配置ACM 配置Zappa 配置

如何解决如何将 zappa 应用程序部署到 https://www.my_domain.com 和 https://my_domain.com API 网关配置Route 53 配置ACM 配置Zappa 配置

我有一个使用 Zappa 部署的 Flask 应用程序。我已成功将其部署到 www.my_domain.com 。但是很多人告诉我“您的网站已关闭”,当我跟进时,是因为他们访问了 https://my_domain.com(没有 www)。

我想从那个重定向到工作站点。我的证书是通过 AWS 获得的,技术上用于 www.my_domain.com、*.my_domain.com 和 my_domain.com(尽管当我进行基于电子邮件的批准时 *.my_domain.com 和 my_domain.com 都被解释为 my_domain.com ).

我尝试更改我的 zappa_settings.json 域,但没有更改。

解决方法

出于此答案的目的,我假设裸域是次要域,而 www 是主要域。如果您选择相反的选项,只需在阅读时颠倒术语即可。

将一个站点重定向到另一个站点

重定向意味着浏览器可以加载 my_domain.com 但接收到 301 moved permanently 的 HTTP 响应。 这意味着浏览器会重定向www.my_domain.com 并导航到该站点。

用户看到地址栏变成了www.my_domain.com(虽然现在很多浏览器都隐藏了 地址的 www 部分),并加载新页面。

重定向需要在 my_domain.com 运行的某种类型的 HTTP 服务器。如果你已经有 一个 HTTP 服务器正在运行,那么配置 Web 服务器以发送重定向非常简单。

如果你没有服务器,那么你可以使用像 S3、Github、Netlify 这样的静态网站服务来 提供重定向。

必须设置整个网络服务器才能仅发送 301 代码,这有点烦人。但是这个方法 得到很好的理解和支持。

一个站点到另一个站点的别名

别名意味着 my_domain.comwww.my_domain.com 都可以工作并且只使用一个 Zappa 项目。 这就像进入同一个房间的两扇门。

浏览器地址栏没有变化,用户在网站上正常操作。一个警告 如果您是using cookies to make sure they are shared between the two domains,这种方法要更加小心。

别名需要对 AWS 服务进行一些高级配置。

API 网关配置

  1. 在 AWS 控制台中,转到 API Gateway service
  2. 在左侧菜单中,点击自定义域名
  3. 点击您的域 (www.my_domain.com)
  4. 点击左侧的API 映射并记下 API 和 Stage 的设置
  5. 点击左侧的创建按钮
    1. 输入裸域名(例如 my_domain.com
    2. 选择Edge optimized
    3. 在 ACM 证书下,选择与您创建的域名称相同的证书
    4. 点击创建域名
  6. 点击新创建的裸域 (my_domain.com)
  7. 选择API 映射
  8. 点击配置 API 映射
    1. 添加您之前记下的相同映射
    2. 点击保存

Route 53 配置

  1. 在 AWS 控制台中,转到 Route 53 service
  2. 在左侧菜单中,选择托管区域
  3. 选择您的域(例如 my_domain.com)
  4. 点击创建记录
    1. 在记录名称中,什么也不输入
    2. 在“记录类型”中,选择 A 记录(如果相反,则选择 CNAME
    3. 在值中,输入 www 域名 (www.my_domain.com)
    4. 在 TTL 中,您可以放置​​任何您想要的内容,但 172800 会将请求缓存两天,这还不错。
    5. 点击创建记录

ACM 配置

您必须确保证书涵盖 my_domain.comwww.my_domain.com

Zappa 配置

确保在 ALLOWED_HOSTS 中添加两个域名,否则 Django 将拒绝请求。

,

我关注了this thread

以下是有效的步骤(虽然我不确定为什么):

  • 转到 API 网关
  • 创建一个新的自定义域:my_domain.com
  • 使用之前批准的my_domain.com记录
  • 在新域中,在“API 映射”下复制 www.my_domain.com 中的设置
  • 回到 53 号公路
  • 创建A记录
  • 将前缀留空
  • 从新的 API 网关域复制“将流量路由到”中的 cloudfront 网址

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。