运用CUCR-VL访问站点的时候出现40三的解决办法,

作者: 韦德国际1946国际网址  发布:2019-05-28

curl的效率很庞大,这里就不做详细的叙说,具体的curl相关小说能够参照本站的curl目录下的稿子,包涵种种参数都有详实的叙述。

三年前写过壹篇《三个简陋的帮助HTTPS的PHP CU奥迪Q3L封装函数》,当时只是知其然不知其所以然,前几天来详细梳理一下。

三年前写过1篇《七个简陋的支撑HTTPS的PHP CURAV4L封装函数》,当时只是知其然不知其所以然,前些天来详细梳理一下。

一般朋友看到ServiceUnavailable提醒一般反应正是网址无效了,但着实的题目是还是不是所英文提醒的ServiceUnavailable呢,当然不是了,上边我来享受此主题材料的消除办法。

不过某个网址可能是出于安全的设想不允许curl命令的造访,就像是微微网址不让ping同样。不过经过浏览器是足以访问的。这种气象我们就要求接纳人工模拟浏览器的法子去做客,也就是行使设置User-Agent的办法来做。

https服务器post数据

https服务器post数据

前几日咱们商议IIS站点出现Service Unavailable与程序池能源配置之间的难题。

笔者后天用curl都以选择命令行和代码的形式。上边作者对三种景况列出消除代码。

 代码如下 复制代码
function curlPost($url, $data, $timeout = 30)
{
运用CUCR-VL访问站点的时候出现40三的解决办法,IIS站点出现Service。    $ssl = substr($url, 0, 8) == "https://" ? TRUE : FALSE;
    $ch = curl_init();
    $opt = array(
            CURLOPT_URL     => $url,
            CURLOPT_POST    => 1,
            CURLOPT_HEADER  => 0,
            CURLOPT_POSTFIELDS      => (array)$data,
            CURLOPT_RETURNTRANSFER  => 1,
            CURLOPT_TIMEOUT         => $timeout,
            );
    if ($ssl)
    {
        $opt[CURLOPT_SSL_VERIFYHOST] = 1;
        $opt[CURLOPT_SSL_VERIFYPEER] = FALSE;
    }
    curl_setopt_array($ch, $opt);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}
$data = curlPost('', array('p'=>'hello'));
echo ($data);  

 代码如下

右键点击1个IIS应用程序池,选用属性,会弹出一个主次池属性对话框,在那之中有八个选项卡。

命令行

-----------------------------笔者是分割线--------------------------------

function curlPost($url, $data, $timeout = 30)
{
    $ssl = substr($url, 0, 8) == "https://" ? TRUE : FALSE;
    $ch = curl_init();
    $opt = array(
            CURLOPT_URL     => $url,
            CURLOPT_POST    => 1,
            CURLOPT_HEADER  => 0,
            CURLOPT_POSTFIELDS      => (array)$data,
            CURLOPT_RETURNTRANSFER  => 1,
            CURLOPT_TIMEOUT         => $timeout,
            );
    if ($ssl)
    {
        $opt[CURLOPT_SSL_VERIFYHOST] = 1;
        $opt[CURLOPT_SSL_VERIFYPEER] = FALSE;
    }
    curl_setopt_array($ch, $opt);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
}
$data = curlPost('', array('p'=>'hello'));
echo ($data);

1、“回收”选项卡

加 -A参数,设置User-Agent

实际上那是报告服务器不开始展览SSL认证,并不是确实走HTTPS

-----------------------------小编是分割线--------------------------------

“回收”选项卡中能够设置回收进度池的年月距离,每一回回收进程池后,进程池全部占用的财富都将被放出。那对服务器的负载是三个强硬的缓慢解决!
在“内部存款和储蓄器回收”中,能够设置程序池最大可占用的内部存款和储蓄器和虚拟内部存款和储蓄器的高低,若是跨越限制,进程池将会被终结掉。内部存款和储蓄器和虚拟内部存款和储蓄器的界定依据实际的站点而定,一般提议将内部存款和储蓄器和虚拟内部存款和储蓄器的限量都设置在500M左右。

curl --head http://www.akamai.com -A "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11"

设若要真正使用HTTPS,那么供给提供CA证书

实质上那是报告服务器不实行SSL认证,并不是的确走HTTPS

2、“性能”选项卡

PHP代码

上边境海关于SSL部分依据如下设置:

万一要真的使用HTTPS,那么要求提供CA证书

“品质”选项卡中有三个很关键的花色正是“启用CPU监视”,能够安装当程序池的CPU使用率超过内定的百分比之后,对经过池举行关闭。提议的优化参数为:每隔一分钟刷新一回CPU使用率,当CPU使用率抢先二分一时,实行“关闭”操作。

加上CURLOPT_USERAGENT参数就可以,该参数既是设置User-Agent的。

 代码如下 复制代码
01.CURLOPT_SSL_VE本田UR-VIFYPEE揽胜极光 设置为 true ,表达实行SSL证书认证 
02.CURLOPT_SSL_VEPRADOIFYHOST 设置为 二, 表达实行严峻验证 
03.CURLOPT_CAINFO 设置为证件的门路  

地方关于SSL部分依据如下设置:

三、“运维情形”选项卡

 1 public function init($url){   2    3 $ch=curl_init();   4    5 $opt=array();   6    7 $opt[CURLOPT_URL]=$url;   8    9 $opt[CURLOPT_HEADER]=false;  10   11 $opt[CURLOPT_CONNECTTIMEOUT]=15;  12   13 $opt[CURLOPT_TIMEOUT]=300;  14   15 $opt[CURLOPT_AUTOREFERER]=true;  16   17 $opt[CURLOPT_USERAGENT]='Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.47 Safari/536.11';  18   19 $opt[CURLOPT_RETURNTRANSFER]=true;  20   21 $opt[CURLOPT_FOLLOWLOCATION]=true;  22   23 $opt[CURLOPT_MAXREDIRS]=10;  24   25 //user defined opt  26   27 if(!empty($this->opt))  28   29 foreach($this->opt as $k=>$v)  30   31 $opt[$k]=$v;  32   33 curl_setopt_array($ch,$opt);  34   35 return $ch;  36   37 }

为方便表达,先上代码吧~ 这是明天再也打包的1个函数

 代码如下

“运维处境”选项卡中有也可能有多个很要紧的参数:运行时间限定和破产时间限定。譬如前边设置了超内部存款和储蓄器和超CPU会关闭程序池,或然会出现关闭程序池失利,那那么些时间应会怎么做吧?
若是池未有在钦命时期内关闭,IIS就能够在等候“关闭时间范围”后,强行关闭它3个刷新CPU时间。在这一个甘休的时光内,网址无法访问,提醒“ServiceUnavailable”。关闭时间和运营时间间隔设置:设短一些诸如10秒,那样当你的网址先后多量占有系统财富时IIS自动火速回收进度并且异常快运转进度,您的网址暂且仍是能够将就着专门的学业。

 

 代码如下 复制代码
/**
 * curl POST
 *
 * @param   string  url
 * @param   array   数据
 * @param   int     请求超时时间
 * @param   bool    HTTPS时是或不是进行严峻评释
 * @return  string
 */ 
function curlPost($url, $data = array(), $timeout = 30, $CA = true){   
 
    $cacert = getcwd() . '/cacert.pem'; //CA根证书 
    $SSL = substr($url, 0, 8) == "https://" ? true : false; 
     
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_TIMEOUT, $timeout); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout-2); 
    if ($SSL && $CA) { 
        curl_setopt($ch, CURLOPT_SSL_VELANDIFYPEE汉兰达, true);   // 只信任CA发布的证书 
        curl_setopt($ch, CURLOPT_CAINFO, $cacert); // CA根证书(用来申明的网址证书是还是不是是CA揭橥) 
        curl_setopt($ch, CURLOPT_SSL_VE中华VIFYHOST, 2); // 检核准明中是还是不是设置域名,并且是还是不是与提供的主机名相称 
    } else if ($SSL && !$CA) { 
        curl_setopt($ch, CURLOPT_SSL_VE中华VIFYPEE本田UR-V, false); // 信任任何证书 
        curl_setopt($ch, CURLOPT_SSL_VELacrosseIFYHOST, 一); // 检核算明中是还是不是设置域名 
    } 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_HTTPHEADE锐界, array('Expect:')); //制止data数据过长难点 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
    //curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($data)); //data with URLEncode 
 
    $ret = curl_exec($ch); 
    //var_dump(curl_error($ch));  //查看报错消息 
 
    curl_close($ch); 
    return $ret;   
}    

01.CURLOPT_SSL_VE福睿斯IFYPEETiguan 设置为 true ,表明进行SSL证书认证 
02.CURLOPT_SSL_VE奥迪Q伍IFYHOST 设置为 贰, 表明进行严酷注脚 
03.CURLOPT_CAINFO 设置为证明的路线 

那多个值提出设置为10秒。

本文由韦德国际1946发布于韦德国际1946国际网址,转载请注明出处:运用CUCR-VL访问站点的时候出现40三的解决办法,

关键词: