LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

识别百度、谷歌、搜狗、360、头条等搜索引擎 UA,Nginx 爬虫分流完整配置

admin
2026年7月2日 12:6 本文热度 69

方案说明

识别百度、谷歌、搜狗、360、头条等搜索引擎爬虫 UA,自动转发页面请求到 prerender 预渲染服务(默认本地 127.0.0.1:3000);普通用户正常访问前端静态资源。

适配 Vue/React 纯前端 SPA 打包在 Nginx 的场景。

完整 nginx server 块配置

nginx
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com; # 替换为你的域名
    root /data/www/your-web-dist; # 替换为前端dist打包目录
    index index.html;
    # 1. 爬虫UA匹配规则
    set $is_crawler 0;
    if ($http_user_agent ~* "Baiduspider|Googlebot|360Spider|SogouSpider|Bytespider|YandexBot|bingbot|DuckDuckBot|spider|bot|crawler|scraper") {
        set $is_crawler 1;
    }
    # 2. 静态资源直接放行,不经过预渲染
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg|woff|woff2|ttf|map)$ {
        expires 7d;
        try_files $uri =404;
    }
    # 3. 爬虫请求转发至预渲染服务
    location / {
        try_files $uri $uri/ /index.html;
        if ($is_crawler = 1) {
            proxy_pass http://127.0.0.1:3000; # prerender 服务地址端口
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto $scheme;
            proxy_connect_timeout 10s;
            proxy_read_timeout 10s;
            break;
        }
    }
    # 4. 可选:sitemap.xml、robots.txt 直接读取本地文件
    location ~ /(robots.txt|sitemap.xml)$ {
        try_files $uri =404;
    }
    # 5. 缓存普通用户页面(可选优化)
    location = /index.html {
        expires -1; # html不缓存,保证页面更新生效
    }
}

配套:Prerender 简易启动(Node.js)

1、安装依赖

bash
运行
npm install prerender

2、新建 server.js

javascript
运行
const prerender = require('prerender');
const server = prerender({
    chromeFlags: ['--no-sandbox', '--disable-gpu'],
    waitAfterLastRequest: 3000, // 等待接口加载完成,单位ms
    maxRequestsPerPage: 100
});
server.start(3000);
console.log('Prerender 服务启动,端口3000');

3、后台常驻运行(pm2)

bash
运行
npm install pm2 -g
pm2 start server.js --name prerender
pm2 startup && pm2 save

关键修改点(必须替换)

  1. server_name yourdomain.com:改成你的网站域名

  2. root /data/www/your-web-dist:前端打包 dist 目录真实路径

  3. proxy_pass http://127.0.0.1:3000:如果预渲染部署在其他服务器,替换对应 IP 端口

HTTPS 站点适配补充

如果网站是 443 HTTPS,在 server listen 443 ssl 内部同样复制这套 $is_crawler 判断逻辑,proxy_set_header 保留 X-Forwarded-Proto $scheme 即可。

测试验证配置是否生效

1、模拟爬虫 UA 访问,看是否返回渲染完成的 HTML

bash
运行
curl -A "Baiduspider" https://yourdomain.com
输出内容能看到列表、文章等动态数据 = 分流成功

2、普通浏览器 UA 访问

bash
运行
curl -A "Mozilla/5.0" https://yourdomain.com

只会返回空白根容器 HTML,不走预渲染服务

常见问题优化

  1. ​预渲染超时报错

    增大 proxy_read_timeout 10s,同时调高 prerender 内 waitAfterLastRequest 到 5000

  2. 服务器无 Chrome 沙箱权限

    启动参数添加 --no-sandbox(配置已内置)

  3. 不想自建 prerender 服务

    可替换 proxy_pass 为付费第三方预渲染地址(prerender.io),修改对应代理地址即可


该文章在 2026/7/2 12:06:47 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-2  粤公网安备44030602007207号