巧用trafficserver (ATS)的PUSH功能来主动更新cache

本文介绍了如何通过PHP代码示例实现HTTP Push功能,并详细指导了修改`ip_allow.config`和`records.config`来支持push,以及如何使用`traffic_ctl config reload`加载配置。适合开发者理解和实践ATS推送技术。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.修改ip_allow.config打开push功能支持

2.修改records.config修改

CONFIG proxy.config.http.push_method_enabled INT 1

3.traffic_ctl config reload重新加载配置

4.代码示例

<?php

// 要缓存的URL
$url = "http://test.cn/test2.html";
$parse = parse_url($url);
// ats port
$host = "test.cn";
$port = 8081;
$fp = fsockopen($host, $port, $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
        // html正文
        $html = "
                <HTML>
                ab
                </HTML>
        ";
        // 要缓存的地址被请求返回的头信息
        $responseHeader = "HTTP/1.0 200 OK\r\n";
        $responseHeader .= "Content-type: text/html\r\n";
        $responseHeader .= "Content-length: " . strlen($html)."\r\n\r\n";

        // 发送给ATS的push头
        $pushLen = strlen($responseHeader . $html);
        $pushHeader = "PUSH $url HTTP/1.0\r\n";
        $pushHeader .= "Content-length: $pushLen\r\n\r\n";

        fwrite($fp, $pushHeader);
        fwrite($fp, $responseHeader);
        fwrite($fp, $html);

        // ATS返回信息,如果返回200或201则成功
        while (!feof($fp)) {
                echo fgets($fp, 128);
        }
        fclose($fp);
}
?>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值