Curl 获取 .cgi 文件,总是 504 网关超时

Curl 获取 .cgi 文件,总是 504 网关超时

我有一个 IP 摄像头,我使用 Get 方法来打开警报。

当我使用浏览器时一切正常

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

如果尝试使用这个 php 文件,我总是得到“504 网关超时”

<?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 上的调试级别。

相关内容