Назад | Перейти на главную страницу

Отправка содержимого в кэш сервера трафика Apache

Я пытаюсь использовать опция 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/ и выполните следующую модификацию:

  • Убедитесь, что опция кеширования 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-адресу. Чтобы локальный хост мог отправлять запросы, укажите следующую строку в 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, я отказался от скрипта.