我在路由方面没有太多经验,所以我正在寻找一些关于配置S3站点和Lightsail API以使用同一域的一般指导。
我拥有一个来自谷歌域名example.app
的域名。
我在AWS Lightsail上为我的API设置了回购,并在我的Google域上列出了自定义名称服务器。这一切都很好,我的API端点(example.app/api/v1/
(正在工作。
我已经在S3 bucket中设置了我的前端,并拥有亚马逊提供的域http://example.app.s3-website-us-east-1.amazonaws.com/
。我希望它也使用域example.app
。
我的问题是,我该如何设置?我似乎无法在我的Google域下列出S3网站和Lightsail API的名称服务器。我需要做一些自己的自定义路由,或者为API使用像api.example.app
这样的子域吗?
我尽量避免将它们合并到一个完整的堆栈应用程序中,因为API由多个客户端使用。
此时,您已经为它们提供了相同的域名(example.app(。在DNS中无法将其配置为在同一域上支持这两个域名。您的选择是将API服务器的域名更改为类似API.example.app的名称,或者将可以根据请求的路径路由流量的东西放在这两个东西前面。
我强烈建议使用第二种选项,并在两台服务器前使用类似CloudFront或Cloudflare的CDN。您可以将example.app指向CDN服务,并将CDN配置为使用/api
路径将请求发送到Lightsail服务器,并将所有其他请求发送到S3存储桶。
使用CDN可以获得更多好处,比如SSL(如果没有CDN就直接从S3提供文件,则无法使用SSL(和响应缓存。