Я пытаюсь вернуть кэш 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
Наиболее вероятная проблема заключается в том, что ваш источник не устанавливает ожидаемые заголовки HTTP, чтобы сделать ответ кешируемым. Соответствующим параметром сервера трафика является proxy.config.http.cache.required_headers, и по умолчанию требуется довольно строгий заголовок Expires или Cache-Control в ответе.
Вы также можете принудительно поместить контент в кеш:
proxy.config.http.cache.required_headers
к 0
; иТак, например, вы можете установить cache.config, чтобы он содержал
dest_domain=mysite.com ttl-in-cache=10m
В сочетании с required_headers
из 0
, это будет работать даже если вы не контролируете происхождение
Обнаружил ... Как указывает Джеймс Пич, мне пришлось разрешить кэширование всех запросов, но, кроме того, ответ должен отправлять заголовок Vary.