deployment - Vercel 和 Pythonanywhere | 在域和子域上分别部署前端和后端
问题描述
我一直在使用 Django 作为后端并使用 React 作为前端框架的项目。我已经在 Pythonanywhere 中部署了这个项目,它运行良好。现在,我想在我的项目中实现 Next.js,但不幸的是,Pythonanywhere 不支持 Node.js。所以我决定在 Vercel 中部署我的前端,并让 Pythonanywhere 中的后端。
为此,我计划创建一个处理 API 请求的子域。在域 DNS 面板中,每个域和子域将分别指向不同的站点。它看起来像这样:
- www.example.com(指向 Vercel,React 应用程序所在的地方)
- api.example.com(指向托管后端的 Pythonanywhere)
我在谷歌上搜索过这个,它应该可以工作。但是,我的问题来了,这是最好的方法还是我应该考虑其他选择?
这是一篇与此相关的帖子。在这篇文章中,作者计划在 GCP 上同时部署后端和前端。
提前感谢您的时间和答案!
解决方案
您描述的设置非常标准,它将完美运行。您只需要注意以下几点:
- 确保“www”和“@”(又名 root)指向 Vercel 使用的 DNS 配置。它应该是
76.76.21.21
根域中的 A 记录和cname.vercel-dns.com
“www”子域中的 CNAME 记录。请记住重定向域以获得最佳 SEO 分数。 - 的 DNS 记录
api.example.com
应指向其他提供商。您需要检查他们是否需要 A 或 CNAME 记录。他们可能还需要根域中的 CAA 记录。 - CORS:注意
example.com
应该触发对api.example.com
. 您的 CORS 配置应该考虑到这一点。CORS 是一个完全不同的讨论,但我会为您指出正确的方向。您需要检查Next.js 自定义标头和CORS 指南。
如果您在 Vercel 上遇到任何问题,可以联系他们的支持渠道。
推荐阅读
- c++ - 在 main 方法中声明与在 main 方法外部声明时的其他结果
- kubernetes - Helm 模板浮点运算
- categories - Akeneo分类bug,不希望有答案,希望稍微通关
- php - mysql查询的错误结果-错误在哪里?
- javascript - 如何遍历一个对象并修改对象数据 ES5
- r - 通过 data.table 连接修改表
- javascript - 在 MongoDb 中从一个表中获取数据到另一个表
- flutter - 为什么登录flutter应用程序后显示黑屏而不是背景图像?
- scala - 如何合并 Spark Scala 数据框 - 基于条件的多行合二为一
- tcp - TCP如何区分由于接收方损坏的段或由于拥塞而丢失的段?