如何提高Twitterbot请求的预渲染速度?

问题描述 投票:0回答:1

对于我正在工作的项目,我已经在与该项目相同的服务器上设置了预渲染服务,并使用Nginx将社交媒体请求传递给该预渲染服务。

我已经观察到,如果授权用户将页面共享到Twitter,则通常可以正常工作,即,将元标记图像和文本呈现为Twitter卡。但是,如果用户共享了同一项目的其他页面,则当用户访问其Twitter帖子时,通常不会渲染图像。

[从Nginx访问日志来看,似乎Twitterbots同时发出了请求,并且预呈现服务太慢,无法呈现页面。 Twitterbot请求中显示499状态,预渲染日志中显示504状态。

该服务器使用1个CPU和2 GB内存数据计划托管在UpCloud上。 prerender服务在300MB的Docker容器中运行,它将缓存呈现的页面60秒。由于内存配额的限制,我会犹豫是否增加缓存持续时间。

我一直在研究服务器日志和可能的解决方案,但是除了重构UI之外,还没有其他解决方案。是否有其他人为此问题苦苦挣扎,您如何克服它?

twitter timeout prerender
1个回答
0
投票

这似乎是运行Prerender服务器的功能不足的服务器。您可能希望至少为其提供更多的RAM,并可能给其另一个CPU,以获得更好的性能。 504根本不应该经常发生。

强烈建议您缓存页面多于60秒,具体取决于页面渲染的时间。除非您的网站流量很高,否则您可能不会在60秒内(来自用户在Twitter上共享URL的情况下)看到多个缓存命中单个URL。

© www.soinside.com 2019 - 2024. All rights reserved.