Странное поведение nginx для запросов 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', как http://myservername.com/store/index/category/898/author/989 в восходящей "delta", и он делает Это. НО: для запросов bing он игнорирует местоположение / хранилище / индекс и запрос прокси к восходящему облаку (server2)

Взгляните: Журнал Server 1:

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, немного настраиваемый журнал, xxxx - мой 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 отправить несколько заголовков или что не так в конфиге? Большое спасибо!

1 ответ

Похоже, что запрос Bing через. через версию https - я редактирую свою конфигурацию https, и теперь все в порядке. Спасибо

Другие вопросы по тегам