美文网首页
sap网站简单实现服务端渲染,轻松解决单页面应用SEO问题

sap网站简单实现服务端渲染,轻松解决单页面应用SEO问题

作者: 8589068464bc | 来源:发表于2020-11-24 00:23 被阅读0次

js功能越发强大,单页面网站已经出现很久。sap的优点很多,这个理不在赘述。但是seo的不友好是sap最大的缺点。

目前sap的seo方案的方案就是ssr(server side render),ssr会使原本的前端代码复杂化,对前端开发人员要求高。也有一些ssr框架,比如基于vue的nuxt、基于react的next。虽然简化了ssr的开发,但是也比原有的vue和react开发复杂,而且还是可能会有坑。

还有一种服务端渲染方案,比上面方案简单,是在服务端安装headless chrome(chromium),再使用nodejs库 puppeteer库调用chromium接口,渲染页面。最后通过nginx根据请求的 user_agent识别是否是爬虫,如果是,转发给用puppeteer实现的服务端渲染的server。

直接使用puppeteer也麻烦,需要使用puppeteer写服务转发请求到chrome,还要在服务端安装chrome。作为一个懒人,当然希望有更简单的方法。后来在puppeteer的github页面 https://github.com/zenato/puppeteer-renderer 发现有打包好的docker镜像,这就简单多了。

使用docker安装服务端渲染服务

如果不会使用docker,自行百度。

直接执行docker命令,8080端口就是渲染服务的端口

docker run -d --name renderer -p 8080:3000 zenato/puppeteer-renderer

配置nginx

 server {
    listen       80;
    server_name  0.0.0.0;// 网站地址

    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header REMOTE-HOST $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        # 根据user-agent判断是否爬虫,规则可以根据不同搜索引擎的user-agent自行调整
        if ($http_user_agent ~* "spider|bot") {
            # 设置querystring 参数 url=http://0.0.0.0,渲染页面服务的地址,需要url ecode
            set $args "url=http%3a%2f%2f0.0.0.0";
            proxy_pass http://0.0.0.1:8080; # 部署渲染服务docker的地址
        }
        try_files $uri $uri/ @router; # 不是搜索引擎,转发到@router
        
    }
    location @router {
        rewrite ^(.*)$ /index.html last; sap应用的index html页面
    }  
}

启动nginx,访问网站,正常用户就可以访问sap页面,搜索引擎访问服务的渲染的也面。sap 网站不能使用“#”的hash模式,必须使用history模式,不然无法生效。hash模式本身也不符传统,所以即使不做服务的渲染,也不建议使用。

相关文章

  • sap网站简单实现服务端渲染,轻松解决单页面应用SEO问题

    js功能越发强大,单页面网站已经出现很久。sap的优点很多,这个理不在赘述。但是seo的不友好是sap最大的缺点。...

  • NUXT(VUE SSR 服务端渲染)

    Server Side Rendering(服务端渲染) SSR 目的是为了解决单页面应用的 SEO 的问题,对于...

  • VUE基于NUXT的SSR 服务端渲染

    Server Side Rendering(服务端渲染) SSR 目的是为了解决单页面应用的 SEO 的问题,对于...

  • VUE基于NUXT的SSR 服务端渲染

    Server Side Rendering(服务端渲染) SSR 目的是为了解决单页面应用的 SEO 的问题,对于...

  • vue-单页和多页优缺点

    单页应用页面跳转---->js渲染优点:页面切换快缺点:首屏加载稍慢,seo差 那么如何解决seo问题呢?通过服务...

  • Nuxt 开发搭建博客

    众所周知,Vue SPA单页面应用对SEO不友好,当然也有相应的解决方案。 服务端渲染 (SSR) 就是常用的一种...

  • Nuxt.js上手教程

    对于React,Vue构建的单页面应用老说,SEO是一个众所周知的问题。服务端渲染(SSR-server Side...

  • 服务端渲染

    SPA单页面应用 优点用户体验好开发效率高渲染性能好可维护性好 缺点 首屏渲染时间长 不利于SEO 通过服务端渲染...

  • react服务端渲染

    单页应用存在的问题 SEO不友好首次请求时间较长,体验不好 服务端渲染和客户端渲染的区别 客户端渲染路线: 请求h...

  • 首屏预渲染方案

    该方案主要是为了解决,前端 spa (单页面应用),首屏渲染慢,白屏时间过长问题。 实现方法 通过 webpack...

网友评论

      本文标题:sap网站简单实现服务端渲染,轻松解决单页面应用SEO问题

      本文链接:https://www.haomeiwen.com/subject/vedbiktx.html