Загрузка содержимого в кэш 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, я отказался от использования скрипта.