设置 NGINX 以根据用户代理选择为后端提供静态文件/代理

设置 NGINX 以根据用户代理选择为后端提供静态文件/代理

我需要向除谷歌、Facebook 和 Twitter 之外的所有人(以及一些其他优秀机器人的简短列表)提供运行 React 的静态文件(index.html)。

我的想法是使用类似

   if ($http_user_agent!~* (Google|Facebot|Twitterbot)) 
   {
        try_files $uri $uri/ /index.html;
   }
   proxy_pass http://127.0.0.1:3003/;
   ...

不错的解决方案,但显然 if 是邪恶的,我无法在其中使用 try_files(在配置启动时出错)。我尝试反转逻辑并在 if 中执行 proxy_pass,但结果是一样的。

解决这种情况的首选方法是什么?

相关内容