2017-05-07 6 views
0

ドメインの一部のパスを他のWebホストにルーティングする必要があるため、サイトのリクエストページが最初にリバースプロキシを経由する必要があるWebサイトで作業しています。2つのGETリクエストの待ち時間を比較する

スタティックアセット(CSS、JS、イメージ)を本当に高速にしたいと思っています。これらのリクエストをプロキシに転送する追加の「ステップ」が待ち時間を追加することです。これらの静的資産がプロキシ経由でルーティングされる理由はありません。

私は私のサイトは、Webホストに直接指して別々のドメインを介して、静的な資産を果たすことによって、この設定を実現することができます。

www.sample.com - >リバースプロキシ - > Webホスト assets.sample.com - > web host

これまでは少し複雑です(別のドメインのアセットへのパスを出力するようにサイトを修正する必要があります)。私はそれがやる価値があることを確かめたい。

リバースプロキシがリクエストの応答時間に与える影響を正確に測定するにはどうすればよいですか?

私はこの単純な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サービスから提供する必要があります。これにより、Web上のすべてのクライアントの待ち時間が比較的短くなります。それを設定することは、大変な作業ではありません。

関連する問題