特定于bingbot请求的奇怪nginx行为

时间:2016-05-04 12:52:19

标签: curl nginx proxy bingbot

我们在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请求,他忽略位置/存储/索引和代理请求上游云(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 proxy'ing request to 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。
  5. 我完全糊涂了。位置工作就像我需要通常的用户请求。由于未知的原因,只有bingbot请求它代理他们到server2。请告诉我也许bingbot发送一些标题或配置有什么问题?非常感谢!

1 个答案:

答案 0 :(得分:0)

似乎bing请求通过。通过https版本 - 我编辑我的https配置,一切都很顺利。感谢