rendora是一种为网络抓取工具提供零配置服务器端动态渲染的SEO工具

18-12-12 banq
                   

Rendora是一个动态渲染器,主要为网络爬虫提供零配置服务器端渲染,以便毫不费力地改进在现代Javascript框架(如React.js,Vue.js,Angular.js等)中开发的网站的SEO ... Rendora完全独立于您的前端和后端堆栈。

Rendora可以看作是位于后端服务器(例如Node.js / Express.js,Python / Django等等)之间的反向HTTP代理服务器,也可能是您的前端代理服务器(例如nginx,traefik,apache等)。 ..)或甚至直接到外部世界,除了当它根据配置检测到白名单请求时,除了传输请求和响应之外什么都没有。在这种情况下,Rendora指示无头Chrome实例请求并呈现相应的页面,然后将服务器端呈现的页面返回给客户端(即前端代理服务器或外部世界)。这个简单的功能使Rendora成为一个强大的动态渲染器,而无需在前端和后端代码中实际更改任何内容。

主要特点

  • 前端和后端代码需要零更改
  • 基于用户代理和路径的过滤器
  • 用Golang编写的单快速二进制文件
  • 多种缓存策略
  • 支持异步页面
  • 普罗米修斯指标
  • 选择您的配置系统(YAML,TOML或JSON)
  • 容器准备好了

什么是动态渲染?

动态呈现意味着服务器将服务器端呈现的HTML提供给Web爬虫(如GoogleBot和BingBot),同时为普通用户提供典型的初始HTML,以便在客户端呈现。动态渲染旨在改善用现代javascript框架(如React,Vue,Angular等)编写的网站的SEO ..

Rendora如何运作?

对于来自前端服务器或外部世界的每个请求,根据Rendora的配置文件,根据头和/或路径测试一些检查或过滤器,以确定Rendora是否应该只传递从后端服务器返回的初始HTML或使用无头Chrome提供服务器端呈现的HTML。更具体地说,对于每个请求,有2条路径:

  1. 如果请求被列入白名单作为SSR的候选者(即通过所有用户代理和路径过滤器的GET请求),Rendora会指示无头Chrome实例请求相应的页面,呈现它并返回包含最终服务器端的响应呈现HTML。您通常只想将GoogleBot,BingBot等网络抓取工具列入白名单......
  2. 如果请求未列入白名单(即请求不是GET请求或未通过任何过滤器),Rendora将只是充当透明的反向HTTP代理,只是按原样传达请求和响应。您通常希望将真实用户列入黑名单,以便将来自后端服务器的常用客户端呈现的HTML返回给他们。

Github