将内容推送到 Apache Traffic Server 的缓存

将内容推送到 Apache Traffic Server 的缓存

我正在尝试使用推送缓存选项Apache Traffic Server(ATS),将一些内容推送到我的缓存中。我阅读了文档,并尝试遵循它,但在使用此选项时,我遇到了以下问题/问题:

1 -在文档中提到,为了启用 PUSH 请求,请proxy.config.http.quick_filter.mask在 中进行修改records.config。但我在该文件中找不到要修改的超级掩码。grep -r proxy.config.http.quick_filter.mask .在 ATS 配置文件夹中运行显示此超级掩码存在于ip_allow.config文件中。它们相同吗?我应该在那里修改它还是应该将其添加到records.config?不幸的是,由于我的问题 2,我无法检查这一点。

2 -我不确定如何发送此 HTTP PUSH 请求以及发送给谁(在哪个端口 - ATS 正在运行的同一端口?)。perl 脚本虽然我还没能运行这个脚本(不懂任何 perl 但正在研究 - 获取Can't locate File/MimeInfo/Magic.pm in @INC),但它应该可以自动化这个过程。我想从脚本中打印出端口以查看如何推送到缓存中。

如能提供任何提示/建议我将非常感激。

答案1

我终于设法将内容推送到 ATS 缓存中。我使用了很多在线教程以及 ATS 支持团队,以下是操作方法,以防其他人感兴趣:

在编辑器中打开 records.config。您可以在下方找到该文件/usr/local/etc/trafficserver/并执行以下修改:

  • 确保 ATS 缓存选项已启用CONFIG proxy.config.http.cache.http INT 1
  • 为了能够将内容推送到缓存中,首先你需要能够执行 HTTP PUSH,设置CONFIG proxy.config.http.push_method_enabled INT 1
  • 让 ATS 忽略缓存对象年龄CONFIG Proxy.config.http.cache.ignore_client_cc_max_age INT 1
  • 其他缓存配置如下所示:

    • CONFIG proxy.config.http.cache.ignore_client_no_cache INT 1
    • CONFIG proxy.config.http.cache.ims_on_client_no_cache INT 0
    • CONFIG proxy.config.http.cache.ignore_server_no_cache INT 1
  • 将 ATS 设置为从不验证缓存对象CONFIG Proxy.config.http.cache.when_to_revalidate INT 3

然后您需要ip_allow.config在同一文件夹中打开文件并进行以下修改。ip_allow.config是声明 IP 和每个 IP 允许执行的操作的配置文件。为了允许本地主机推送请求,文件中有以下行ip_allow.config

src_ip=127.0.0.1                                  action=ip_allow  method=ALL

现在您的 ATS 已设置为接受推送缓存。打开终端并按照以下步骤进行测试:

# telnet 127.0.0.1 8080

Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

(在这里粘贴您想要推送的内容,请记住它应该是有效的 http 推送请求!)

PUSH http://www.company.com HTTP/1.0
Content-length: 84

HTTP/1.0 200 OK
Content-type: text/html
Content-length: 17

<HTML>
a
</HTML>

(以下是成功推送到缓存后你应该得到的结果)

HTTP/1.0 200 OK
Date: Tue, 05 Feb 2013 16:00:22 GMT
Server: ATS/3.2.0
Content-Length: 0

Connection closed by foreign host.

最后回答我的问题:

1)proxy.config.http.quick_filter.mask已从 移至records.config。您可以通过更改文件ip_allow.config让 ATS 从不同文件中读取它们。CONFIG proxy.config.cache.ip_allow.filename STRING ip_allow.configrecords.config

2)由于我设法使用 telnet,因此我拒绝使用该脚本。

相关内容