我正在一个网站上,网站的请求页面需要首先通过反向代理,因为域上的某些路径应该路由到其他网络主机。
我想让静态资产(CSS,JS,图像)加载得非常快,我的想法是让这些请求进入代理的额外“步骤”是增加延迟。这些静态资产没有理由通过代理进行路由。
我可以通过让我的网站通过一个单独的域提供静态资源来实现此设置,该域直接指向Web主机:
www.sample.com - >反向代理 - >网络主机 assets.sample.com - >网站主持人
在我进行此设置之前,这会增加一些复杂性(我必须修改网站,以便它知道输出具有不同域的资产的路径),我想确保它甚至值得做。< / p>
如何准确衡量反向代理对请求响应时间的影响?
我创建了这个简单的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));
}