将爬虫重定向到内部服务

Redirecting Crawler to internal service

我想设置 nginx 让某些爬虫从端口 9998 上的内部服务 运行 获取数据。

因此,例如,当浏览器请求 www.mywebsite.com/resource/1 时,它会查看根文件夹,但当爬虫(例如 FB 爬虫)请求相同的资源时,它应该获取服务返回的页面 127.0.0.1:9998/resource/1.

这是我想出的配置,但没有按预期工作。正确识别了用户代理,但没有从服务中获取数据。

    location / {
        if ($http_user_agent ~ Facebot) {
            proxy_pass http://127.0.0.1:9998;
        }

        root /etc/www/website;
        try_files $uri /index.html;
        ... other stuff...
   }

proxy_pass后加一个break

location / {
    if ($http_user_agent ~ Facebot) {
        proxy_pass http://127.0.0.1:9998;
        break;
    }

    root /etc/www/website;
    try_files $uri /index.html;
    ... other stuff...
}