首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建高性能静态网站

构建高性能静态网站
EN

Server Fault用户
提问于 2011-06-22 17:32:40
回答 4查看 1.9K关注 0票数 2

我想建立一个高性能的网站。它有数千个静态HTML页面,这些页面是根据表单提交而具体呈现的。我有一个ruby脚本,它生成这些静态HTML页面并将它们存储在服务器上。

现在我正在查看站点上的1000+并发用户。这是为这些用户提供服务的最快方式。我相信,在这种情况下,Nginx + Varnish可以做得非常好。我还能做什么进一步的优化吗?

是否有一种方法代替NGinx +清漆点击磁盘的HTML页面,它击中内存代替。以某种方式使用Memcached。

我已经在考虑将其他静态资产(如Image/Stylesheets)移出CDN。关于这件事的最佳方法,请提出建议。

谢谢!

转载自[https://stackoverflow.com/questions/6439484/building-a-high-performance-static-website]:StackExchange

EN

回答 4

Server Fault用户

发布于 2011-06-22 17:50:01

虽然清漆是绝对美妙的,它是灵活的VCL,它确实更适合缓存动态网站。人们似乎普遍认为,nginx的性能优于清漆(至少在小型静态对象上是如此)。

您可以直接使用proxy_cache、fastcgi_cache或直接从磁盘使用nginx。我知道它确实支持memcached,但是memcached的唯一好处是,如果有多个服务器共享相同的缓存--除此之外,我只能看到额外的开销。

您可以让您的文件系统(希望是raid控制器)缓存(最常用的)数据,或者直接将其放入一个ramdisk!

我确信,一台具有几GB内存的相当预算的xeon服务器每秒将处理几千个请求,因为您实际上只提供静态内容。我还认为可能会预先压缩所有静态内容,这样就不会为每个请求添加额外的卵子头了。

票数 5
EN

Server Fault用户

发布于 2011-06-22 19:28:26

没有什么比把文件推送给客户更好了。如果你能做到这一点,我会非常努力地去做,因为它很容易扩展,不需要花哨的缓存,而只需要把准备好的东西送到客户端。而Nginx特别擅长这个任务。由于它的基于事件的处理模型,它将使用更少的资源,并且可能要比基于线程的清漆快得多,当您有许多同时连接时。

此外,基本文件系统非常擅长缓存文件以进行重复读取。因此,我认为您可以使用一个简单的服务器,不需要太多的CPU功能,但是需要足够的内存来缓存一个好的I/O子系统。最优的系统将能够在RAM中缓存所有需要的对象,所以您应该可以使用一个大小大致为(工作大小集+ 1GB)的系统。根据对象的大小,我还强烈建议至少将SSD用作旋转锈蚀的中间缓存层,以便能够快速检索RAM中尚未存在的对象。您将观察到的I/O模式可能是相当随机的,这是SSD可以很容易实现的,但是旋转磁盘不太擅长。

通常,重要的度量不是用户浏览站点的数量,而是到服务器的并发TCP连接的实际数量和所需的吞吐量。通过一些调整,您可以很容易地用一个大约3000美元的系统来填充一个千兆字节的管道。

票数 2
EN

Server Fault用户

发布于 2011-06-22 17:49:16

一种更标准的方法是动态生成结果,然后从某种缓存中处理后续请求。

您可以使用redis或memcached之类的代码来实现这一点(请参阅https://stackoverflow.com/questions/868690/good-examples-of-python-memcache-memcached-being-used-in-python上的一个基本python示例)。您也可以使用像nginx这样的缓存代理来自动完成这一任务。

票数 1
EN
页面原文内容由Server Fault提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://serverfault.com/questions/283112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档