Я пытаюсь использовать опция push cache сервера 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
). Я хотел распечатать порт из сценария, чтобы увидеть, как вставить его в кеш.
Любые подсказки / подсказки будут оценены.
Мне наконец удалось запихнуть контент в кеш ATS. Я использовал множество онлайн-руководств, а также службу поддержки ATS. Вот как это сделать, если кому-то еще интересно:
Откройте файл records.config в редакторе. Вы можете найти файл в /usr/local/etc/trafficserver/
и выполните следующую модификацию:
CONFIG proxy.config.http.cache.http INT 1
CONFIG proxy.config.http.push_method_enabled INT 1
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 настроен на прием push-кеша. Откройте терминал и проверьте, выполнив следующие шаги:
# 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.config
в records.config
файл.
2) Поскольку мне удалось поработать с telnet, я отказался от скрипта.