Загрузка содержимого в кэш 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
  • Для того, чтобы сначала включить push-контент в кеш, вам нужно иметь возможность выполнять 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-адресу. Чтобы разрешить push-запросам локальный хост, в строке ip_allow.config файл:

src_ip=127.0.0.1                                  action=ip_allow  method=ALL

Теперь ваш ATS настроен на прием push-кеша. Откройте терминал и протестируйте, выполнив следующие шаги:

# telnet 127.0.0.1 8080

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

(здесь вы вставляете то, что хотите нажать, помните, что это должен быть VALID http push-запрос!)

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 файл.

2) Так как мне удалось поработать с telnet, я отказался от использования скрипта.

Другие вопросы по тегам