我的 Discourse 速度很慢

尝试关闭 Ezoic 再试,它可能会成为真正的瓶颈。

@gerhard

是的,我们确实使用了 Cloudflare (CF),但我认为人们使用 CF 是为了加速网站,所以我们也在使用它。
是的,我们将 CF 账户与 Ezoic 关联了,但我们目前并未使用 Ezoic,也没有通过他们投放广告。我没能找到任何方法将 Ezoic 集成从我自己的 CF 账户中移除。

目前,我们使用的是 Digital Ocean 的单 Droplet 实例,整个服务器上只托管了这个网站。网站通过 NGINX 提供服务,配置如下(部分值已做虚化处理):我们使用 NGINX 是因为我们还需要通过 PHP 在 Amazon ERC Number - How To Discuss 提供 AMP 页面。

server {
listen httpsPORT ssl http2;

ssl on;
ssl_certificate         /path/to/pem;
ssl_certificate_key     /path/to/key;
server_name howtodiscuss.com www.howtodiscuss.com;
location / {
    proxy_ssl_server_name       on;
    proxy_pass       http://localhost:port;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;

    proxy_redirect off;

    # Socket.IO Support
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_ssl_protocols         TLSv1 TLSv1.1 TLSv1.2;
        \n    \n\n    \n\n    } 

\n\n

我们的网站已经通过 Cloudflare 提供服务,这理应能加速,但似乎并没有起到加速作用。

您提到了这些,我们会尝试。请问部署和运行这些是否完全免费?比如将整个论坛托管在完整的 Cloudflare CDN 上,是 100% 免费吗?能否请您告知具体步骤,以及我应该遵循哪种方案以获得最佳投资回报率 (ROI)?

此外,我尝试开启 CF Rocket Loader,但随后 Discourse 无法按预期工作。而且我认为,如果我开启 CF 对 CSS、JS 和 HTML 文件的压缩,EmberJS 脚本同样无法正常工作,网站行为也会异常。在我的 CF 账户中,还有哪些设置可以调整以加速网站,同时又不损害网站性能和可用性?

我们如何在 Discourse 上启用 GZIP 压缩和资源压缩及最小化,并启用服务器端/客户端缓存?

我们最近发现的另一个问题是:当我们以管理员身份访问 https://howtodiscuss.com/logs 时,它会将我们重定向到 https://howtodiscuss.com/logs/logs/。这是最新版本 Discourse 的一个 bug 吗?

我们 @ahmed_khan1 将很快安装 GitHub - discourse/discourse-prometheus: Official Discourse Plugin for Prometheus Monitoring · GitHub 插件,并与大家分享统计数据。

另外,基于我们当前的设置,如果您有任何其他建议或优化指导,请随时分享。谢谢。

为什么不直接让内部 NGINX 来承担这项工作呢?

正如我之前提到的,我们提供 AMP 页面,并在 NGINX 中处理 AMP 路由,但我未在 NGINX 的代码片段中分享相关的 AMP 代码。

我们的 AMP 页面可通过以下地址访问:

等等。我们通过这些 PHP 页面提供服务,并利用 Discourse API 构建这些 AMP 页面。因此,我们需要 NGINX 为我们处理 AMP 页面的路由,因为 Discourse 本身并不原生提供此 AMP 路由功能。

如果有人能帮助我们使网站在 Google PageSpeed 和 GTMetrix 上达到 100 分,并助力我们进一步发展,请通过 howtodiscuss.com@gmail.com 与我们联系。

https://developers.google.com/speed/pagespeed/insights/?url=https%3A%2F%2Fhowtodiscuss.com%2Ft%2Fsarahs-discovery-of-weight-loss%2F28583&tab=mobile

如果我是你,我不会试图让一个缓慢的网站变快,这有点徒劳。应该从一个速度已经足够的网站开始,再尝试让它更快。所以,第一步是找出它为什么这么慢。我会按以下步骤操作:

  • 创建一个新的 Droplet(仅用于测试),并遵循 Discourse 的安装说明
  • 暂时不要添加任何插件,也不要使用 Cloudflare、Nginx 等
  • 恢复生产站点的备份
  • 速度是否足够?好的。
  • 添加插件
  • 仍然很快?好的。如果不是,尝试找出是哪个插件拖慢了速度
  • 在其前端添加 Nginx 来处理所有 PHP 相关请求
  • 仍然很快?好的。如果不是,尝试其他方法,例如:
    • 找出为什么 Nginx 会导致变慢
    • 或者让 Nginx 在专用端口上运行以处理 PHP 请求,然后在 Discourse 和 Nginx 前端使用 TCP 模式的 HAProxy
  • 开始使用 CDN 来加速静态资源,或使用全站 CDN——请参阅我上一篇文章中的链接,并仔细阅读相关主题。Cloudflare 需要特殊处理(例如在 app.yml 中使用特定模板等),请勿启用 Rocket Loader 或类似功能。