2017-12-19 23 views
0

私はこのウェブサイトを解析しようとしています:http://www.mz.gov.kz/ru/news、しかし、私は504エラーが発生しています。 connection_timeoutを60秒に変更すると、28 error: connect timed outとなります。別のサーバーでは正常に動作します。多分私のIPはブロックされていた、私は知らない。私の機能はcurl exec 500 timeout nginx

function get_web_page($url) 
    { 
     $uagent = "Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.14"; 
     $ch = curl_init($url); 
     curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
     curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
     curl_setopt($ch, CURLOPT_USERAGENT, $uagent); 
     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 120); 
     curl_setopt($ch, CURLOPT_TIMEOUT, 120);   
     curl_setopt($ch, CURLOPT_MAXREDIRS, 10); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
     curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
     curl_setopt($ch, CURLOPT_COOKIEFILE,"d://coo.txt");  
    $content = curl_exec($ch); 
    $err = curl_errno($ch); 
     $errmsg = curl_error($ch); 
     $header = curl_getinfo($ch); 
     curl_close($ch); 
     $header['errno'] = $err; 
     $header['errmsg'] = $errmsg; 
     $header['content'] = $content; 
    //echo $errmsg.'s<br>'; 
     /*foreach($header as $key=>$value){ 
      echo $key.' -- > '.$value.'<br>'; 
     }*/ 
     return $header; 
    } 

答えて

0

あなたのコードは有効です。

504エラーは、いくつかの問題が、この場合には、あなたが行われた要求は、(実行する)サーバー構成によって許される最大より多くの時間を必要とすること、具体的に60と120の間に何かをサーバ側にを発生したことを意味秒。

応答エラーコードが「本物」の場合、サーバーが過負荷になっているか、実際にタイムアウトを引き起こす特定の要求が発生している可能性があります。

もう一つの選択肢として、あなたのIPが禁止されていて、サーバーが単に「防衛」対策として接続タイムアウトを許可することがありますが、これは(私の経験から)非常に珍しいことです。 通常、IPが禁止されている場合、接続はただ拒否されます。実装が簡単で、リソースを節約します。