У меня есть веб-приложение, которое получает данные от себя через API REST в формате JSON. Я в процессе перемещения этого сайта на новый сервер на новом хосте. У меня все перемещено, та же база данных, те же файлы. Основные отличия заключаются в том, что PHP работает как модуль на новом сервере вместо FastCGI, а новый хост имеет настраиваемый клиентом брандмауэр.
Веб-приложение выполняет вызов API, используя объект Pear_ HTTP_Request (метод GET). Когда я запускаю веб-приложение, которое выполняет вызов, оно вращается до тех пор, пока, наконец, не вернет ошибку «Тайм-аут соединения».
Однако, если я отображаю URL-адрес, используемый вызовом, а затем нажимаю на него прямо в браузере, он мгновенно возвращает все данные JSON.
Мне интересно, может ли это быть проблемой брандмауэра: порт или протокол, используемый кишками объекта Pear_ HTTP_Request, заблокирован? (В настоящее время существует политика брандмауэра, разрешающая трафик на порт 80 с любого IP).
Или проблема с разрешением: PHP, работающий как модуль, более чувствителен к этому.
Благодарим за любую идею!
Поскольку новый сервер все еще тестируется только с использованием IP-адреса, внутреннее веб-приложение пытается получить доступ к себе через внешний IP-адрес. С самого сервера внешний IP не доступен. Это должно быть изменено, чтобы указать на IP внутренней сети для тестирования.
Как только доменное имя будет перемещено, оно снова станет не проблема.
Других решений пока нет …