Curl get из .cgi файла, всегда 504 gateway timeout

Curl get из .cgi файла, всегда 504 gateway timeout

У меня есть IP-камера, и я использую метод Get для включения будильника.

Когда я использую браузер, все в порядке.

http://da***.com:808/set_alarm.cgi?user=***&pwd=***&motion_armed=1"

Если попытаться использовать этот php-файл, я всегда получаю сообщение «504 gateway time out»

<?php

    function httpGet($url)
      {
        $ch = curl_init();  

        curl_setopt($ch,CURLOPT_URL,$url);

        $output=curl_exec($ch);
        curl_close($ch);
        return $output;
      }

     echo httpGet("http://da***.com:808/set_alarm.cgi?user=***&pwd=***&motion_armed=1");
?>

Кто-нибудь может мне помочь?

Спасибо

решение1

Я думаю, что вы запрашиваете какой-то скрипт с того же сервера, и, 504 скорее всего, это связано только с одним внутренним процессом PHP. Поэтому, когда вы запрашиваете из браузера, это только один запрос, и он отправляется на сервер.

Если вы используете php-cgi, то надеюсь, что настройка переменных окружения перед запуском php-cgi поможет.

установить PHP_FCGI_CHILDREN=0

установить PHP_FCGI_MAX_REQUESTS=10000`

Проверьте, может ли ваш бэкэнд обрабатывать несколько запросов одновременно и не создает ли ваш скрипт мертвый вид (запрашивая вывод самого себя).

Проверьте логи FCGI. Если это не поможет, увеличьте уровни отладки на nginx.

Связанный контент