【发布时间】:2019-12-27 13:10:58
【问题描述】:
对于我正在工作的项目,我在与项目相同的服务器上设置了预渲染服务,并使用 Nginx 将社交媒体请求传递给预渲染服务。
我观察到,如果授权用户将页面分享到 Twitter,它通常可以工作,即元标记图像和文本呈现为 Twitter 卡片。但是,如果用户共享了同一项目的其他页面,则当用户访问他的推特帖子时,通常不会呈现图像。
从 Nginx 访问日志来看,Twitterbots 似乎同时发出请求,并且预渲染服务太慢而无法渲染页面。 Twitterbot 请求中显示了 499 个状态,预呈现日志中显示了 504 个状态。
服务器托管在 UpCloud 上,使用 1 个 CPU 和 2 GB 内存数据计划。预渲染服务在 300MB 的 docker 容器中运行,它将缓存渲染页面 60 秒。由于内存配额,我犹豫是否增加缓存时长。
我一直在研究服务器日志和可能的解决方案,但除了重构 UI 之外,还没有提出其他解决方案。有没有其他人在这个问题上挣扎过,你如何克服它?
【问题讨论】: