2017-05-07 3 views
0

도메인의 일부 경로가 다른 웹 호스트로 라우팅되어야하므로 사이트의 요청 페이지가 먼저 역방향 프록시를 통과해야하는 웹 사이트에서 작업하고 있습니다.두 GET 요청 간의 대기 시간 비교

정적 애셋 (CSS, JS, 이미지)이 정말로 빠르게로드되도록하고 싶습니다. 이러한 요청을 프록시에 적용하는 추가 단계는 대기 시간을 추가하는 것입니다. 이러한 정적 자산이 프록시를 통해 라우트 될 이유는 없습니다.

내 사이트가 웹 호스트에 직접 가리키는 별도의 도메인을 통해 고정 자산을 제공함으로써이 설정을 얻을 수 있습니다

www.sample.com -> 리버스 프록시 -> 웹 호스트 assets.sample.com -> 웹 호스트

약간의 복잡성이 추가되는이 설정을 완료하기 전에 (다른 도메인의 자산에 대한 경로를 출력 할 수 있도록 사이트를 수정해야 함) 내가 할 가치가 있는지 확인하고 싶다.

리버스 프록시가 요청의 응답 시간에 미치는 영향을 정확하게 측정하려면 어떻게해야합니까?

나는이 간단한 PHP 스크립트를 생성,하지만 난 그게 좋은 방법인지 아닌지 궁금해 :

$with_proxy = get_average_response_time('https://www.example.com/path/to/asset.jpg'); 
$without_proxy = get_average_response_time('https://assets.example.com/path/to/asset.jpg'); 

echo "difference: " . $with_proxy - $without_proxy; 

function get_average_response_time($url) { 
    $total = 0; 
    $amount = 50; 
    for ($i = 0; $i < $amount; $i++) { 
     $start = milliseconds(); 
     file_get_contents($url); 
     $total += milliseconds() - $start; 
    } 

    return $total/$amount; 
} 

function milliseconds() { 
    $mt = explode(' ', microtime()); 
    return ((int)$mt[1]) * 1000 + ((int)round($mt[0] * 1000)); 
} 

답변

1

당신이 file_get_contents이 무엇인지 따라 다릅니다. 이 스크립트는 파일을 제공하는 호스트가 아닌 별도의 호스트에서 실행해야합니다. 또한이 함수가 캐싱을 사용하지 않도록하고 싶습니다.

일반적으로 엄지 손가락의 규칙에 따라 CDN 서비스에서 정적 리소스를 제공해야합니다. 그러면 클라이언트 전체의 대기 시간이 상대적으로 짧습니다. 그 일을 설정하는 것은 많은 일이 아니어야합니다.