加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

amazon-s3 – RESTful Web服务的最具可伸缩性和高性能的Amazon

发布时间:2020-12-13 21:31:55 所属栏目:Nginx 来源:网络整理
导读:我正在构建一个异步RESTful Web服务,我正在试图找出最具扩展性和高性能的解决方案.最初,我计划使用FriendFeed配置,使用一台运行nginx的计算机来托管静态内容,充当负载均衡器,并充当运行Tornado Web服务器的四台机器的反向代理,用于动态内容.建议在单核计算机

我正在构建一个异步RESTful Web服务,我正在试图找出最具扩展性和高性能的解决方案.最初,我计划使用FriendFeed配置,使用一台运行nginx的计算机来托管静态内容,充当负载均衡器,并充当运行Tornado Web服务器的四台机器的反向代理,用于动态内容.建议在单核计算机上运行nginx,在单核计算机上运行每个Tornado服务器.亚马逊网络服务(AWS)似乎是最经济,最灵活的托管服务提供商,所以这里有我的问题:

1a.)在AWS上,我只能找到c1.medium(双核CPU和1.7 GB内存)实例类型.那么这是否意味着我应该在c1.medium上运行一个nginx实例,在m1.small(单核CPU和1.7 GB内存)实例上运行两个Tornado服务器?

1b.)如果我需要扩展,我如何将这三个实例链接到同一配置中的另外三个实例?

2a.)在S3存储桶中托管静态内容更有意义. nginx还会托管这些文件吗?

2b.)如果没有,性能会因为没有nginx托管它们而受到影响吗?

2c.)如果nginx不会托管静态内容,它实际上只是作为负载均衡器.有一篇很好的论文here比较了不同云配置的性能,并且说这是关于负载均衡器:“HaProxy和Nginx都在第7层转发流量,因此SSL终止和SSL重新协商会降低可扩展性.相比之下,Rock forwards没有SSL处理开销的第4层流量.“您是否建议将nginx替换为在第4层上运行的负载均衡器,或者亚马逊的Elastic Load Balancer是否具有足够高的性能?

最佳答案
1a)Nginx是异步服务器(基于事件),单个工作者本身可以处理大量的同时连接(max_clients = worker_processes * worker_connections / 4 ref)并且仍然表现良好.我自己在c1.medium类型的盒子上测试了大约20K的同时连接(不是在aws中).在这里,您将worker设置为两个(每个cpu一个)并运行4个后端(您甚至可以测试更多以查看它的中断位置).只有当这给你带来更多问题时,再去做一个类似的设置并通过elastic load balancer链接它们

1b)如(1a)中所述使用弹性负载平衡器.请参阅somebody tested ELB的20K reqs / sec,这不是限制,因为他们失去了兴趣而放弃了.

2a)cloudfront中的主机静态内容,其CDN就是这样的(比S3便宜和快,它可以从s3桶或你自己的服务器中提取内容).其高度可扩展性.

2b)显然,使用nginx提供静态文件,它现在必须向相同数量的用户提供更多请求.消除这种负载将减少接受连接和发送文件的工作(减少带宽使用).

2C).完全避免nginx看起来很好的解决方案(少一个中间人). Elastic Load balancer将处理SSL终止并减少后端服务器上的SSL负载(这将提高后端的性能).从上面的实验中它显示出大约20K,并且由于它的弹性,它应该比软件LB更多伸展(见this nice document工作)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读