我无法理解official nginx conf
的https://prerender.io为什么选择try_files?
使用try_files
永远不会解雇location @prerender
!
我看起来有以下行为:
如果从浏览器访问任何页面,nginx将静态/本地提供。如果从某个爬虫访问该页面,则由代理服务。
官方片段似乎没有这样做,但官方文件说:
您在服务器上安装的Prerender.io中间件将检查每个请求,以查看它是否是来自爬网程序的请求。如果是来自爬虫的请求,则中间件将向Prerender.io发送请求以获取该页面的静态HTML。如果没有,请求将继续到您的正常服务器路由。爬虫永远不会知道您正在使用Prerender.io,因为响应总是通过您的服务器。
有人可以帮我理解吗?
答案 0 :(得分:0)
来自Prerender.io的Todd。
我们建议使用try_files,如:
try_files $uri @prerender;
这样做是为了让$ uri可以匹配静态文件(图像等)然后,如果没有找到,运行@prerender配置。
有时我们会看到$ uri匹配/index.html用于返回单页应用程序的html文件的每个请求。如果是这种情况,您可以删除try_files,而只是将@prerender位置的内容复制到您需要的位置,以便在提供index.html文件之前运行它。