【问题标题】:Strange nginx behavior specific for bingbot requests特定于 bingbot 请求的奇怪 nginx 行为
【发布时间】:2016-05-04 12:52:18
【问题描述】:

我们在 nginx 日志中发现了一些奇怪的东西。一些仅来自 bingbot 的请求直接发送到后端,但如果我们从 curl 发出这些请求,它们会像往常一样处理。请看配置。

我有两台服务器,一台(server1)如果是前端,它将一些请求代理到 server2,而一些请求则由他自己处理。

请查看服务器 1 配置:

server {   
  listen  80;# default_server;

  proxy_set_header        X-Real-IP       $remote_addr; 
  proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;   
  proxy_set_header        Host            $host;

  server_name myservername.com;

     location / {
         index  index.html;
         root /var/www/apps/delta/shared/public;

         if (-f $request_filename/index.html) {
           rewrite (.*) $1/index.html break;
         }

         if (-f $request_filename.html) {
           rewrite (.*) $1.html break;
         }

         if (!-f $request_filename) {
           proxy_pass http://cloud;
           break;
         }   
    }

    location /store/index/ {
      index  index.html; 
      root /var/www/apps/delta/shared/public;

      if (-f $request_filename/index.html) {
        rewrite (.*) $1/index.html break;
      }

      if (-f $request_filename.html) {
        rewrite (.*) $1.html break;
      }

      if (!-f $request_filename) {
        proxy_pass http://delta;
        break;
      }
   }

}

server2的配置文件很简单,在上游处理请求,没什么意思。

因为它必须使用此配置:nginx 需要处理从 '/store/index' 开始的请求,例如上游“delta”处的http://myservername.com/store/index/category/898/author/989,他这样做了。但是:对于 bing 请求,他忽略了位置 /store/index 和对上游云(server2)的代理请求

看看: Server1 日志:

157.55.39.83 - - [04/May/2016:15:33:45 +0300] "GET /store/index/category/67/author/6 HTTP/1.1" 200 12150 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)"

Server2 日志,一点点自定义日志,x.x.x.x - 我的前端 ip:

x.x.x.x - - [04/May/2016:15:33:45 +0300]  "GET /store/index/category/67/author/6 HTTP/1.0" 200 12137 "-" "Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)" "myservername.com" 5.045

我们所看到的:

  1. nginx 代理请求 server2
  2. bingbot 请求 http 1.0 版本
  3. 这是一个代理请求,而不是来自 bingbot 的两个 到 server1,同时到 server2。
  4. 在我做同样的事情之后 来自另一台服务器的请求: curl -0 -v http://myservername.com/store/index/category/67/author/6 一切正常, 只有 server1 处理此请求,而 nginx 不代理此请求 服务器2。

我完全糊涂了。位置就像我通常需要的用户请求一样工作。并且由于未知原因,并且仅针对 bingbot 请求,它会将它们代理到 server2。请告诉我也许 bingbot 发送了一些标头或配置中有什么问题?非常感谢!

【问题讨论】:

    标签: curl nginx proxy bingbot


    【解决方案1】:

    似乎 bing 请求通过。通过 https 版本 - 我编辑了我的 https 配置,现在一切都很好。谢谢

    【讨论】:

    • 你知道这个 bingbot 是从哪里来的吗?
    猜你喜欢
    • 2013-06-24
    • 2020-05-07
    • 1970-01-01
    • 2020-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-24
    • 2018-09-09
    • 2016-12-20
    相关资源
    最近更新 更多