在NodeJS Express前部署CloudFront

时间:2017-10-09 14:42:15

标签: node.js express caching amazon-cloudfront

我有一个应用程序,它提供动态html和一些用NodeJS / Express编写的静态文件。

我在它前面部署了一个AWS CloudFront发行版,但只有HTML通过,所有静态文件都会生成404.请求的标题如下所示:

Age:116 Connection:keep-alive Content-Length:170 Content-Security-Policy:default-src 'self' Content-Type:text/html; charset=utf-8 Date:Mon, 09 Oct 2017 14:37:23 GMT Server:nginx/1.6.2 Via:1.1 523db8f46d98334ac6b5debbf315e15b.cloudfront.net (CloudFront), 1.1 proxy1.xxx.yy (squid/4.0.17) X-Amz-Cf-Id:5UYpluGn8TxUxsxmmDYYiZnjbOWbZ7iFFit55mmgcN6IbAJHCEAX6Q== X-Cache:MISS from proxy1.xxx.yy X-Cache:Error from cloudfront X-Cache-Lookup:MISS from proxy1.xxx.yy:3128 X-Content-Type-Options:nosniff X-Powered-By:Express

有关信息,我的nodejs应用程序在某个端口运行,nginx将其反向代理到我使用proxy_pass指定的域。

你可以看到我在另一个代理后面,但这不是问题所在。

我认为发生的事情是我的来源看起来像mydomain.com/path/app_id并且表达来自mydomain.com/的静态文件。

是否有人在NodeJS / Express前面为静态文件成功部署了CloudFront?我真的不明白这个问题是什么..

谢谢!

1 个答案:

答案 0 :(得分:0)

要从另一条路径提供文件,流程如下:

  • 添加所有必要的来源(在这种情况下为mydomain.com/path/app_idmydomain.com(不会尾随/))
  • 为每种文件类型添加ditribution的行为。在这种情况下,静态文件存储在不同的文件夹中(如/img)。因此,我们可以为img/*js/*css/*添加行为。然后可以将每个行为设置为单个原点。在这种情况下,我们选择之前名为mydomain.com的{​​{1}}。
相关问题