通过Cloudfront为EC2托管的网站提供服务

0

【以下的问题经过翻译处理】 大家好,

这是我在这个论坛的第一个问题。希望一切都好。

设置:

我有一个运行Nginx并托管我的网站的EC2实例。获得了一个弹性IP,打开了所有正确的端口。到目前为止,一切都运行正常。

我创建了一个CloudFront分发。它使用我的网站域名作为源。我在分发界面上添加了一个子域,cdn.mydomain.com,作为备用域。我在服务器上创建了Sectigo SSL证书,并在CloudFront界面上为我的分发创建了这些证书。SSL已启用,用于mydomain.com、www.mydomain.com和cdn.mydomain.com。我将cdn.mydomain.com设置为Route 53 DNS中的CloudFront别名记录。它指向CloudFront分发的URL。我等待更改部署后进行测试。我的子域cdn.mydomain.com有效。分发的URL dyzmywebsitejbpe.cloudfront.net 有效。分发正在使用mydomain.com作为源从我的EC2实例获取内容。似乎一切都正常。

冲突:

我希望当最终用户在浏览器中输入mydomain.com时,他们可以通过我的CloudFront分发获取内容,而不是从我的服务器获取内容。为了实现这一目标,我尝试了各种组合。根据我理解的方式,以下内容应该有效。

英勇行动:

我将分发的源从mydomain.com更改为cdn.mydomain.com。然后,我更改了两个DNS记录。首先,cdn.mydomain.com从指向CloudFront URL更改为指向我的EC2 Web服务器的IP。其次,mydomian.com从指向IP更改为指向CloudFront URL。使用分发界面,我从备用域中删除cdn.mydomain,然后添加mydomain.com。基本上,我颠倒了mydomain.com和cdn.mydomain.com扮演的角色。我等待DNS传播和重新部署。

一切都失落了:

在这一点上,什么都不起作用。我收到一个错误。重定向太多。以上所有URL现在都不起作用。

似曾相识:

我又恢复了从前的配置,一切都好。cdn.mydomain和分发的URL似乎通过我的CloudFront分发提供内容。而且mydomain.com正常工作,因为它指向了我的服务器的IP。

一个人必须知道自己的局限性:

我明显错误地理解了需要将分发的源设置为子域,而该子域cdn.mydomain.com应该指向我的Web服务器的IP。我认为Nginx需要知道这个子域,并已将其添加到我的.conf文件中。我假设mydomain.com的DNS应该指向分发的URL。我为涉及的所有三个域在我的服务器上添加了可信源证书,并告诉Nginx它需要了解它们的信息。我通过分发界面的分发备用URL选项卡为我的所有三个域生成了aws的证书。但我只允许一个备用URL,根据我的理解,应该是mydomain.com。

坦白对于解决方案有好处:

我被困在一个循环中。我无法走出来。我漏掉了什么?谢谢任何帮助!

John Ullom

profile picture
EXPERTE
gefragt vor 6 Monaten17 Aufrufe
1 Antwort
0

【以下的回答经过翻译处理】 1、在ACM中创建一个证书,基本上是为*mydomain.com创建的通配符证书。 2、在分发中,将“备用域名”设置为mydomain.com和www.mydomain.com。 3、使用ACM中的证书。 4、创建两个行为,一个用于静态内容,一个用于动态内容。对于每个行为,你将有不同的缓存策略。 5、在Route 53中,将mydomain.com和www.mydomain.com都指向CloudFront分发的别名。

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen