构建高性能静态网站

Kar*_*ury 2 performance nginx cache varnish html

我正在寻找建立一个高性能网站。它有数以千计的静态 HTML 页面,这些页面是根据表单提交专门呈现的。我有一个 ruby​​ 脚本,可以生成这些静态 HTML 页面并将它们存储在服务器上。

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

有没有办法代替 NGinx + Varnish 为 HTML 页面访问磁盘,而是访问 RAM。以某种方式使用 Memcached。

我已经在考虑将其他静态资产(如图像/样式表)移出 CDN。请告知解决此问题的最佳方法是什么。

谢谢!

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

3mo*_*olo 5

虽然 varnish 凭借其灵活的 VCL 绝对出色,但它确实更适合缓存动态网站。关于 nginx 优于 varnish(至少在小的静态对象上)似乎有普遍的共识。

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

您可以让您的文件系统(以及希望 RAID 控制器)缓存(最常用的)数据,或者只是将其粘贴到 ramdisk 中!

考虑到您实际上只提供静态内容,我相信具有几 GB ram 的相当预算的 Xeon 服务器将很容易每秒处理几千个请求。我还认为有可能预先压缩所有静态内容,这样您就不会为每个请求添加额外的开销。