MyB*_*ome 4 apache nginx amazon-web-services node.js
我确实将其发布在serverfault上,但是没有任何视图或响应。
我在这里阅读了很多有关使用Node.js时是否需要网络服务器的文章,答案似乎总是肯定的,以便提供静态文件。
我的问题是这个。如果我正在工作的网站主要是动态的,那么我不能只使用Node.js作为服务器和动态部分,然后将所有静态文件(css,js,图像等)放在CloudFront上为它们提供服务起来吗?这样,我不必担心缓存(通过清漆或Redis或您拥有的东西),或运行像nginx这样的http服务器并通过代理访问Node.js的方法(我读过的内容会引起socket.io问题) )。
沿着类似的话题,亚马逊的ELB是否足以作为负载均衡器,或者如果站点足够大而需要进行负载均衡,我是否还需要做其他事情?提前致谢!
我无法明确地说出node.js架构决策,但可以解决您的CloudFront和ELB问题。
CloudFront是用于静态资产的出色CDN,但也有一些陷阱。俗话说:“计算机科学中只有两个难题:缓存失效和命名。” 如果要用名称相同但已更新的资产替换静态资产,则必须开始使用cache-control-header进行处理,该标头确定任何给定的CF节点将资产缓存多长时间。如果将CF设置得太低,则在CF中缓存几乎没有什么好处。太痛苦了,我强烈建议对资产进行版本控制并设置应用程序,以便同时部署资产和更新资产引用。目前,尚无办法通过API调用或其他方法从CF中手动终止对象的缓存。
至于ELB缩放:是。使用它们。Netflix可以,如果可以的话,也可以。使用ELB的关键是了解它们在应用程序流量中的作用:您希望它们具有高可用性,这意味着在多个可用区中维护一组Web服务器,并确保正确配置了ELB使其可以正常使用。实际上,Netflix最近开放了其名为“ Asgard” 的云管理应用程序的源代码。我建议检查一下。链接的博客文章对ELB的使用做了很好的解释,Asgard看起来像是一种在停机时间为零的情况下管理云部署的不错的方法。
| 归档时间: |
|
| 查看次数: |
1635 次 |
| 最近记录: |