ATS (Apache Traffic Server) не кеширует

Я пытаюсь вернуть кеш ATS моего приложения UWSGI, которое в настоящее время работает на той же машине, что и сама ATS.

Я не понимаю, почему ATS всегда перенаправляет мои запросы в UWSGI и не кэширует результаты. Я использую ATS 5.1.1 в Ubuntu 14.04, скомпилированную из исходного кода, и я следовал инструкциям, описанным здесь: http://daemonkeeper.net/735/apache-trafficserver-the-better-web-cache/

Используя curl, чтобы сделать тестовый запрос, я всегда получаю эту диагностику в заголовке Via: uScMsSf pSeN:t cCMi p sS

Который может быть декодирован с помощью traffic_via для:

Proxy request results:
Request headers received from client:               simple request (not conditional)
Result of Traffic Server cache lookup for URL:      miss (a cache "MISS")
Response information received from origin server:   served
Result of document write-to-cache:                  no cache write performed
Proxy operation result:                             served
Error codes (if any):                               no error
Operational results:
Tunnel info:                                        no tunneling
Cache-type and cache-lookup cache result values:    cache / cache miss (url not in cache)
ICP status:                                         no icp
Parent proxy connection status:                     no parent proxy
Origin server connection status:                    connection opened successfully

Может кто-нибудь помочь мне понять, почему результат не кешируется?

Мой remap.config:

map http://trafficserver_build:8080 http://127.0.0.1:8888

Мой cache.config:

url_regex=.* revalidate=10m

Мой storage.config (по умолчанию):

var/trafficserver 256M

Состояние запросов журнала:

/ opt / ts / bin / traffic_logcat -f /opt/ts/var/log/trafficserver/squid.blog


1415307115.252 0 10.0.3.28 TCP_MISS / 200 258 HEAD http://127.0.0.1:8888/ - DIRECT / 127.0.0.1 text / html
1415307127.721 0 10.0.3.28 TCP_MISS / 200 258 HEAD http://127.0.0.1:8888/ - DIRECT / 127.0.0.1 text / html
1415307171.141 0 10.0.3.28 TCP_MISS / 200 258 HEAD http://127.0.0.1:8888/ - DIRECT / 127.0.0.1 text / html
1415307176.480 0 10.0.3.28 TCP_MISS / 200 258 HEAD http://127.0.0.1:8888/ - DIRECT / 127.0.0.1 text / html

3 ответа

Решение

Обнаружил это... Как указывает Джеймс Пич, я должен был разрешить кэширование всех запросов, но в дополнение ответ должен отправлять заголовок Vary.

Наиболее вероятная проблема заключается в том, что ваш источник не устанавливает ожидаемые заголовки HTTP, чтобы сделать ответ кэшируемым. Соответствующим параметром сервера трафика является proxy.config.http.cache.required_headers, и по умолчанию он достаточно строг, поскольку в ответе требуется заголовок Expires или Cache-Control.

https://trafficserver.readthedocs.org/en/latest/reference/configuration/records.config.en.html

Вы также можете принудительно ввести содержимое в кеш:

Так, например, вы можете установить cache.config, чтобы содержать

dest_domain=mysite.com ttl-in-cache=10m

В сочетании с required_headers из 0, это будет работать, даже если вы не контролируете происхождение

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