Cache

將內容推送到 Apache Traffic Server 的記憶體

  • August 2, 2015

我正在嘗試使用Apache Traffic Server(ATS) 的推送記憶體選項,將一些內容推送到我的記憶體中。我閱讀了文件,並嘗試遵循它,但使用此選項我有以下問題/問題:

**1 -**在它提到的文件中,為了啟用 PUSH 請求,修改proxy.config.http.quick_filter.mask. records.config然而我在那個文件中找不到這樣一個超級遮罩來修改。在 ATS 配置文件夾中執行grep -r proxy.config.http.quick_filter.mask .顯示此超級遮罩存在於ip_allow.config文件中。他們是一樣的嗎?我應該在那裡修改它還是應該添加它records.config?不幸的是,由於我的問題 2,我無法檢查這一點。

**2 -**我不確定如何發送這個 HTTP PUSH 請求以及發送給誰(在哪個埠上 - 同一個埠 ATS 正在執行?)。有一個perl-script假設可以自動執行該過程,儘管我還不能執行該腳本(不知道任何 perl 但正在研究它 - 獲取Can't locate File/MimeInfo/Magic.pm in @INC)。我想從腳本中列印出埠,看看如何推送到記憶體中。

任何提示/提示將不勝感激。

我終於設法將內容推送到 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 忽略 cahce 對象年齡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 '^]'.

(在這裡粘貼您要推送的內容,請記住它應該是 VALID 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.config它們records.config

  1. 由於我設法使用 telnet,我拒絕使用該腳本。

引用自:https://serverfault.com/questions/471684