<dfn id="w48us"></dfn><ul id="w48us"></ul>
  • <ul id="w48us"></ul>
  • <del id="w48us"></del>
    <ul id="w48us"></ul>
  • PHP CURL內(nèi)存泄露的解決方法

    時間:2024-10-23 13:35:58 PHP 我要投稿
    • 相關推薦

    PHP CURL內(nèi)存泄露的解決方法

      curl配置平淡無奇,長時間運行發(fā)現(xiàn)一個嚴重問題,內(nèi)存泄露!不論用單線程和多線程都無法避免!是curl訪問https站點的時候有bug!

      內(nèi)存泄露可以通過linux的top命令發(fā)現(xiàn),使用php函數(shù)memory_get_usage()不會發(fā)現(xiàn)。

      經(jīng)過反復調(diào)試找到解決辦法,curl配置添加如下幾項解決問題:

      復制代碼 代碼如下:

      [CURLOPT_HTTPPROXYTUNNEL] = true;

      [CURLOPT_SSL_VERIFYPEER] = false;

      [CURLOPT_SSL_VERIFYHOST] = false;

      CURLOPT_HTTPPROXYTUNNEL具體說明stackoverflow上有,直接貼原文:

      Without CURLOPT_HTTPPROXYTUNNEL

      Without CURLOPT_HTTPPROXYTUNNEL : You just use the proxy address/port as a destination of your HTTP request. The proxy will read the HTTP headers of your query, forward your request to the destination (with your HTTP headers) and then write the response to you.

      Example steps :

      1)HTTP GET / sent to 1.1.1.1 (proxy)

      2)1.1.1.1 receive request and parse header for getting the final destination of your HTTP request.

      3)1.1.1.1 forward your query and headers to www.site.com (destination in request headers).

      4)1.1.1.1 write back to you the response receive from www.site.com

      With CURLOPT_HTTPPROXYTUNNEL

      With CURLOPT_HTTPPROXYTUNNEL : You ask the proxy to open a direct binary connection (like HTTPS, called a TCP Tunnel) directly to your destination by doing a CONNECT HTTP request. When the tunnel is ok, the proxy write you back a HTTP/1.1 200 Connection established. When it received your browser start to query the destination directly : The proxy does not parse HTTP headers and theoretically does not read tunnel datas, it just forward it, thats why it is called a tunnel !

      Example steps :

      1)HTTP CONNECT sent to 1.1.1.1

      2)1.1.1.1 receive HTTP CONNECT and get the ip/port of your final destination (header field of HTTP CONNECT).

      3)1.1.1.1 open a TCP Socket by doing a TCP handshake to your destination 2.22.63.73:80 (ip/port of www.site.com).

      4)1.1.1.1 Make a tunnel by piping your TCP Socket to the TCP Socket opened to 2.22.63.73:80and then write you back HTTP/1.1 200 Connection established witch means that your client can now make your query throw the TCP Tunnel (TCP datas received will be transmited directly to server and vice versa).

    【PHP CURL內(nèi)存泄露的解決方法】相關文章:

    JAVA垃圾收集算法與內(nèi)存泄露的解決方法12-04

    PHP中curl的使用實例07-31

    Javascript 閉包引起IE內(nèi)存泄露分析07-05

    PHP的cURL庫有效地抓網(wǎng)頁的技巧08-08

    關于深入PHP內(nèi)存相關的功能特性詳解09-02

    電腦內(nèi)存常見故障及解決方法05-12

    手機內(nèi)存卡故障及解決方法10-10

    電腦內(nèi)存六大故障以及解決方法09-26

    Intel傲騰內(nèi)存是內(nèi)存還是固態(tài)硬盤06-17

    電腦內(nèi)存的作用08-26

    主站蜘蛛池模板: 精品午夜福利1000在线观看| 亚洲综合精品一二三区在线| 2022精品天堂在线视频| 国产三级精品三级在线观看| 无码人妻精品一区二区| 国産精品久久久久久久| 国产精品黄网站| 午夜不卡久久精品无码免费| 国产精品无码免费播放| 99在线精品免费视频九九视| 无码国内精品久久人妻麻豆按摩| 九九热在线精品视频| 亚洲AV永久精品爱情岛论坛| 久久e热在这里只有国产中文精品99| 亚洲AV无码精品色午夜果冻不卡| 精品国产热久久久福利| 国产精品一区二区不卡| 久久亚洲精品成人av无码网站| 精品人妻少妇一区二区三区在线| 99精品久久精品| 久久99精品国产麻豆| 亚洲国产另类久久久精品黑人| 国产精品九九久久免费视频 | 久久精品国产99国产精品澳门| 最新欧美性爱精品一区二区三区 | 久久精品国产影库免费看| 最新国产乱人伦偷精品免费网站| 国产精品原创巨作?v网站| 91精品国产综合久久四虎久久无码一级 | 国产精品一香蕉国产线看观看| 久久精品成人免费看| 97精品国产91久久久久久| 精品一区二区三区波多野结衣| 中文字幕精品亚洲无线码二区| 97久久精品人人澡人人爽| 国产精品制服丝袜亚洲欧美| 久久精品国产亚洲AV电影| 国产精品无码久久久久| 欧美高清在线精品一区| 国产成人vr精品a视频| 蜜芽亚洲av无码精品色午夜|