Завершение получения файла.cgi, всегда 504 тайм-аута шлюза
У меня есть ip-камера, и я использую метод Get для включения будильника.
Когда я использую браузер, все в порядке
http://da***.com:808/set_alarm.cgi?user=***&pwd=***&motion_armed=1"
Если попытаться использовать этот php-файл, я всегда получаю "504 time out gateway 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
set PHP_FCGI_MAX_REQUESTS = 10000`
Убедитесь, что ваш бэкэнд может обрабатывать несколько запросов одновременно, и что ваш скрипт не создает тупой вид (запрашивая вывод самого себя).
Проверьте журналы FCGI. Если это не поможет, увеличьте уровни отладки в nginx.