Веб-сервис случайным образом разрывает соединения - возможно, из-за отсутствия данных брандмауэра?
У меня есть веб-приложение, которое запрашивает данные у веб-службы REST в нашем офисе. Каждая страница вызывает один (или несколько) веб-сервисов, которые идут от нашего хоста через наш брандмауэр (Fireguard Firebox) к серверу в нашем офисе.
Внезапно приложение резко замедлилось. Мы определили, что веб-служба тайм-аут в случайном порядке при вызове извне (это нормально, когда вызывается в офисной сети).
Я почти уверен, что наше соединение прерывает вызов веб-службы, поэтому я написал быстрый скрипт php / curl, который вызывает веб-службу на протяжении многих итераций и показывает различные моменты времени.
Ниже приведен пример вывода, показывающий как неудачный, так и успешный вызов (с 5-секундным таймаутом):
http_code namelookup_time connect_time pretransfer_time starttransfer_time total_time
1 0 0.000096 0.0342 0.0000 0.0000 0.0342
2 200 0.000052 0.0332 0.1327 0.1751 0.1752
Согласно приведенной выше итерации № 1, сбой запросов, кажется, сбой между connect
а также pretransfer
, Я не уверен, если это показывает, что соединение успешно прошло брандмауэр, или брандмауэр все еще может вызвать проблему?
Наш брандмауэр показывает серию nondata event
протоколировать сообщения для соответствующего правила доступа. Наша ИТ-команда говорит мне, что это обычная практика, хотя я не могу найти упоминания об этом в Google. Я не уверен, подходит ли это между соединением и предварительным переносом.
После исключения сервера веб-сервиса (путем внутреннего тестирования) и живого веб-приложения (путем тестирования различного кода на разных внешних серверах я остаюсь подозревать соединение с офисом. Могут ли события, не связанные с данными в firebox, вызвать проблему между соединением и предварительным переносом?