fsockopen 응답 지연 문제에 대해 문의드립니다.

fsockopen 응답 지연 문제에 대해 문의드립니다.

QA

fsockopen 응답 지연 문제에 대해 문의드립니다.

본문

A서버와 B서버 두개의 서버가 존재합니다.

A서버에 [가]계정, [나]계정을 만들고
B서버에 [다]계정을 생성하였습니다.

[가] 계정에서 [나] 계정으로 fsockopen 접속을 시도하면 응답시간이 10초이상 소요됩니다.
[가] 계정에서 [다] 계정으로 fsockopen 접속을 시도하면 응답시간이 0.1초로 바로 웹 페이지가 뜹니다.

어느 부분에서 차이가 나는건지 모르겠어서요.

A서버는 php스쿨의 가상서버를 이용하여 구현하였고
B서버는 무료호스팅인 닷홈서버를 이용하였습니다.

가상서버의 호스트 주소 때문에 문제가 발생하는건지..

속 시원한 답변 부탁드립니다.

만약 A서버의 [가] 계정에서 [나] 계정으로 접속하여 관련 정보를 수집하기위해 fsockopen 보다 빠르고
안전한 방법이 있다면 알려 주시면 감사드리겠습니다.

 

 

 


function GetWeb($domain, $url){
 
$fp = fsockopen($domain, 80);
 
$sendData="GET ".$url." HTTP/1.1\r\nHost:".$domain."\r\n\r\n";
 
fwrite($fp, $sendData);
 
while(!feof($fp)){
 
$getdata .= fgets($fp, 1024);
 
}
 
fclose($fp);
 
$getdata_arr = explode("\r\n\r\n", $getdata);
    
 
//이때 $getdata_arr의 [0]은 Header부분 [1]이 Body부분입니다.
 
return $getdata_arr[1];
 
}
 
function get_userinfo($id)
{
    $res = GetWeb("도메인주소", "/res.php?userid=".$id);
    $res = explode(';', $res);
    $userinfo = array(
        'code'          => $res[0],  // 결과코드
        'set_date'      => $res[1],  // 설치일
        'up_date'       => $res[2],  // 시작일
        'end_date'      => $res[3],  // 죵료일
        'lastetime'     => $res[4],  // 남은일수
    );
     
    return $userinfo;
}
 
//사용예시
$payninfo = get_userinfo("orderpay");
echo $payninfo['code'] . "";
echo $payninfo['set_date'] . "";
echo $payninfo['up_date'] . "";
echo $payninfo['end_date'] . "";
echo $payninfo['lastetime'] . "";

 

이 질문에 댓글 쓰기 :

답변 2

fsocketopen php내장함수가 느린게 아니라..."도메인주소"에 해당하는 서버가 느린거겠죠... 

 

B서버([다] 계정 userid) 는 접속량이 얼마 없어서 빠른거고, 

A서버([나] 계정 userid) 는 접속량이 많든지.. 그런 케이스 아닌가요?

 

res.php파일내에 db에서 사용자 사용기간정보 불러오는 거 같은데... 

A서버에서 htop등의 명령어로.. DB부하(res.php관련)라든지..서버 cpu등등 점검해보셔야 할듯~~

 

 

 

답변을 작성하시기 전에 로그인 해주세요.
전체 129,103 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT