2014-09-10 2 views
-2

У нас есть функция CURL в нашем приложении. Эта функция завитка состоит в основном для сопоставления данных с 1 сайта в нашем поле формы в нашем приложении. Однако эта функция работает нормально все время и готова к использованию более двух месяцев. Вчера эта функция была разбита. данные с этого веб-сайта больше не могут сопоставляться. Мы пытаемся выяснить, почему проблема. Когда мы устраняем неполадки, это показывает, что есть проблема с тайм-аутом ответа.PHP cURL function

Чтобы гарантировать, что в нашем кодировании нет ничего плохого, и наша производительность сервера работает, мы дублируем этот экземпляр на другой сервер и проверяем функцию. Он работал отлично.

  1. Удивительно, если кто-нибудь сталкивается с такой проблемой?
  2. Что может вызвать эту проблему?
  3. Когда мы используем cURL, владелец сайта знает, что мы вызываем их данные для сопоставления с нашим серверным приложением? Если да, есть ли способ преодолеть это?
  4. Может ли быть владелец, блокирующий наш ip-адрес сервера? Почему он работает хорошо на моем другом сервере, но не на исходном сервере?

Цените свою помощь по этому вопросу.

Спасибо,

+0

«Время ответа». 'CURLOPT_TIMEOUT' может быть? http://php.net/manual/en/function.curl-setopt.php искать варианты таймаута –

ответ

0
  1. Описание проблемы слишком общий, чтобы определить конкретную причину. Скорее всего, однако, существует определенный блок.
  2. Например, правило брандмауэра на другом конце или на вашем конце приведет к отбрасыванию всего трафика, что приведет к таймауту. Также может быть обычный перебой сети между обоими серверами, но это маловероятно.
  3. Да, они будут видеть это в своих журналах Apache (или IIS) регулярно. Нет, вы не можете скрыться из журналов сервера - он регистрирует все успешные запросы. Вы либо получаете данные, либо скрываетесь. Не оба.
  4. Да, журналы веб-сервера будут содержать IP-адрес, выполняющий все запросы. Добавление правила DROP к брандмауэру - это тривиальная задача.

Я применил такое правило брандмауэра с пропускной способностью и/или личерами данных много раз в течение последних нескольких лет, хотя обычно я предпочитаю более упругий deny from 1.2.3.4 подход в Apache ВХоста/HTAccess. Обычно, если вы используете чужие объекты, приятно спросить о правильном разрешении - уменьшает вероятность того, что вы заблокируете этот путь.

0
  1. Я сталкивался с подобной проблемой некоторое время назад
  2. Мой сервер IP был заблокирован от владельца сайта
  3. Это можно увидеть в журналах сервера. Однако Google Analytics этого не увидит, поскольку cURL не выполняет javascript.
  4. Попробуйте выполнить команду ping с сервера-получателя от исполняющего cURL.

Некоторые советы являются:

Используйте заголовок браузера, чтобы скрыть свой запрос. Если вы настаиваете на использовании этого сервера, вы можете запустить прокси-сервер. Поместите некоторый сон() между запросами.

+0

HI, могу я знать, как вы преодолеваете это? – May

+0

Я попытался изменить IP-адрес и попробовать его, он также не может ... У кого-нибудь есть идеи по этому поводу? Можете посоветовать? Мы также моделируем проблему на сервере, чтобы использовать функцию CURL для получения данных другого сайта на нерабочем сервере, и он тоже не работает. Он показывает: Время ожидания подключения. – May

+0

Вы пробовали пинговать другие серверы? – mariobgr