我已经做了大量研究,但没有看到任何地方针对我的服务器配置的具体缓存建议。
DO single Droplet 2GB Ram
Ubuntu 16
Nginx
Php-fpm 7
Mysql
SSL
must cache logged in users too
W3 总缓存在此设置下表现不佳,因此我正考虑将其全部放弃。这样一来,我就没有缓存,也没有 CDN。
如果能就我的缓存需求指出正确的方向,我将非常感激。
答案1
我写了一篇关于 Nginx 和 Wordpress 的文章,重点介绍了性能、缓存和 CDN。您可以阅读六部分教程这里。
SF 喜欢在帖子中添加摘要,以防网站消失。很难总结一篇花了几个月时间编写的长达数十页的教程,但这里可以总结一下:
- 如果可能的话,不要调用 PHP。即使调用 PHP 也很慢,执行速度也很慢,并且会占用大量 RAM 和 CPU
- 如果您的网站为大量匿名用户提供服务,请使用 Nginx 页面缓存。如果您的内容经常更改,您可以使用微缓存,如果在繁忙的网站上缓存内容哪怕只有 1 秒钟,也可以显著减少负载。页面缓存可以将网站性能提高一到两个数量级。
- 注意不要缓存已登录用户的页面。
- 正确设置缓存标头,并使用 CloudFlare 等 CDN 以及 CloudFlare PageRules 为您网站的不同部分正确设置缓存。例如,管理页面不应被缓存。您甚至可以在 CloudFlare 上缓存您的页面,尽管这意味着您的服务器上没有良好的网络统计数据 - 使用 Google Analytics 或类似工具
更新 - 拥有许多登录用户的网站
您无法缓存已登录用户的页面,因为它们是自定义的,因此您需要将缓存推回到堆栈中,主要是数据库和对象缓存。W3 总缓存很有用,您可能希望将其与 Redis/Memecached 集成作为数据存储。使用 CDN 来减少服务器负载和延迟,尽管从 Nginx 提供静态内容不会占用太多服务器。
Wordpress 和 PHP 总体上占用资源较多,因此您需要确保拥有足够的资源 - PHP 需要相当多的 RAM 和 CPU。具体需要多少资源取决于您的负载。云提供商可帮助您实现这一点,因为如果您经常需要更多资源,您可以进行扩展,或者您可以使用 AWS 或类似服务并在高负载期间进行扩展。这会显著增加您的系统复杂性,因为您需要共享目录来存放 Wordpress 中的静态内容(图像)、负载平衡等。