ОШИБКА CURL: Ошибка Recv: Сброс соединения по пиру - PHP Curl

У меня странная ошибка,CURL ERROR: Recv failure: Connection reset by peer

Вот как это происходит, если я не подключился к серверу и вдруг при попытке подключиться к серверу через CURL в PHP я получаю сообщение об ошибке. Когда я снова запускаю сценарий CURL, ошибка исчезает и все время работает хорошо, если я оставляю удаленный сервер бездействующим в течение 30 минут или перезагружаю удаленный сервер и пытаюсь подключиться снова, я снова получаю ошибку. Таким образом, кажется, что соединение бездействует, и вдруг сервер просыпается, затем работает, а затем снова спит.

Вот так выглядит мой скрипт CURL.

<code>$url = Yii::app()->params['pdfUrl'];
            $body = 'title='.urlencode($title).'&client_url='.Yii::app()->params['pdfClientURL'].'&client_id='.Yii::app()->params['pdfClientID'].'&content='.urlencode(htmlentities($content));

            $c = curl_init ($url);
            $body = array(
                "client_url"=>Yii::app()->params['pdfClientURL'],
                "client_id"=>Yii::app()->params['pdfClientID'],
                "title"=>urlencode($title),
                "content"=>urlencode($content)

            );
            foreach($body as $key=>$value) { $body_str .= $key.'='.$value.'&'; }
                rtrim($body_str,'&');

            curl_setopt ($c, CURLOPT_POST, true);
            curl_setopt ($c, CURLOPT_POSTFIELDS, $body_str);
            curl_setopt ($c, CURLOPT_RETURNTRANSFER, true);
            curl_setopt ($c, CURLOPT_CONNECTTIMEOUT , 0);
            curl_setopt ($c, CURLOPT_TIMEOUT  , 20);

            $pdf = curl_exec ($c);
            $errorCode = curl_getinfo($c, CURLINFO_HTTP_CODE);
            $curlInfo = curl_getinfo($c);
            $curlError = curl_error($c);

            curl_close ($c);
</code>

У меня полностью нет идей и решений, пожалуйста, помогите, я буду признателен за это !!!

Если я подробный вывод, чтобы увидеть, что происходит с помощью

<code>curl_setopt ($c, CURLOPT_VERBOSE, TRUE);
curl_setopt($c, CURLOPT_STDERR, $fp); 
</code>

Я получаю следующее

<code>* About to connect() to 196.41.139.168 port 80 (#0)
*   Trying 196.x.x.x... * connected
* Connected to 196.x.x.x (196.x.x.x) port 80 (#0)
> POST /serve/?r=pdf/generatePdf HTTP/1.1
Host: 196.x.x.x
Accept: */*
Content-Length: 7115
Content-Type: application/x-www-form-urlencoded
Expect: 100-continue

* Recv failure: Connection reset by peer
* Closing connection #0
012 20:23:49 GMT
< Server: Apache/2.2.15 (CentOS)
< X-Powered-By: PHP/5.3.3
< Connection: close
< Transfer-Encoding: chunked
< Content-Type: text/html; charset=UTF-8
< 
* Closing connection #0
</code>

Я добавил следующий палец, чтобы удалить заголовок по умолчанию, но мне все равно не повезло:

<code>curl_setopt ($c, CURLOPT_HTTPHEADER, array( 'Expect:' ) );

> Accept: */* Content-Length: 8414 Content-Type:
> application/x-www-form-urlencoded
> 
> * Recv failure: Connection reset by peer
> * Closing connection #0 r: Apache/2.2.15 (CentOS) < X-Powered-By: PHP/5.3.3 < Connection: close < Transfer-Encoding: chunked <
> Content-Type: text/html; charset=UTF-8 < 
> * Closing connection #0
</code>

Ответы на вопрос(6)

Ваш ответ на вопрос