Now to think about it, i might have set dest_domain to wrong value. Documentation is not that clear on that. If there are x.y.z.tld and a.b.z.tld then what have to be written to dest_domain to capture both of those? dest_domain=z.tld or dest_domain=*.*.z.tld
Or someting else? Veiko 2017-11-23 19:20 GMT+02:00 Veiko Kukk <[email protected]>: > Hi Alan, > > That is what i had already done in cache.config: > dest_domain=.*.source.tld ttl-in-cache=9999d > > Of cource, source.tld is actually real domain, and this did not avoid > checking origin for object freshness, it was still considered stale by ATS. > > https://docs.trafficserver.apache.org/en/7.1.x/admin- > guide/configuration/cache-basics.en.html#ensuring-cached-object-freshness > describes that if Expires is present, it is used to calculate objects > freshness. And there is no way to ignore it. I've configured now ATS to > remove Expires header and set Cache-control: max-age=157784630 with header > rewrite plugin and cond %{READ_RESPONSE_HDR_HOOK} > Will see it that helps. > > Veiko > > > 2017-11-23 18:38 GMT+02:00 Alan Carroll <[email protected]>: > >> You might try fiddling with the 'cache.config' file and set a cache TTL >> of 10 years or so. >> >> On Thu, Nov 23, 2017 at 10:11 AM, Veiko Kukk <[email protected]> >> wrote: >> >>> Hi David, >>> >>> Objects are not fetched from ATS via browser. ATS is just internal >>> cache. Only problem is to trick ATS into believing that object is always >>> fresh, never stale. >>> I wonder if modifying headers before ATS (READ_RESPONSE_HDR_HOOK) >>> removing or changing Expires and/or adding max-age to some very big value >>> might be right way to go for me. >>> >>> Veiko >>> >>> >>> 2017-11-23 17:52 GMT+02:00 David Carlin <[email protected]>: >>> >>>> Have you considered adding "Cache-Control: Immutable" to these objects >>>> which will never require re-validation? This will prevent the browser from >>>> attempting an If-Modified-Since request. >>>> >>>> https://hacks.mozilla.org/2017/01/using-immutable-caching-to >>>> -speed-up-the-web/ >>>> >>>> David >>>> >>>> On Thu, Nov 23, 2017 at 10:07 AM, Veiko Kukk <[email protected]> >>>> wrote: >>>> >>>>> In addition to my previous e-mail, headers that are provided by source >>>>> to ATS: >>>>> >>>>> < HTTP/1.1 200 OK >>>>> < Content-Length: 1185954 >>>>> < Accept-Ranges: bytes >>>>> < Last-Modified: Mon, 02 Nov 2015 17:56:12 GMT >>>>> < Etag: 92ef40097ba87bdf09efcf7e1cefd32a >>>>> < X-Timestamp: 1446486971.39466 >>>>> < Content-Type: application/octet-stream >>>>> < Content-Disposition: attachment; >>>>> filename="ABIYohNyPrJNjvFsAdgN5wc8D-8Yo4ZO.m4s"; >>>>> filename*=UTF-8''ABIYohNyPrJNjvFsAdgN5wc8D-8Yo4ZO.m4s >>>>> < Expires: Thu, 23 Nov 2017 15:27:30 GMT >>>>> < X-Trans-Id: tx3a0af5473d5c41d38195c-005a16e30d >>>>> < X-Openstack-Request-Id: tx3a0af5473d5c41d38195c-005a16e30d >>>>> < Date: Thu, 23 Nov 2017 15:02:37 GMT >>>>> < X-IPLB-Instance: 12631 >>>>> >>>>> I assume, Expires header is here to blame and must be overriden in ATS >>>>> config, but how? I don't have control over source, its Openstack Swift >>>>> object storage. >>>>> >>>>> Veiko >>>>> >>>>> >>>>> 2017-11-23 16:35 GMT+02:00 Veiko Kukk <[email protected]>: >>>>> >>>>>> Hi, >>>>>> >>>>>> Could ATS in reverse proxy mode be configured such way that it would >>>>>> never try to revalidate from source? It is known that in our case, object >>>>>> never changes (and is never refetched from source) and it is desirable to >>>>>> avoid any source validation. Validation verification adds significant >>>>>> overhead and we need to avoid it. Response to client with TCP_REFRESH_HIT >>>>>> would take 100-200ms instead of 0-10 in case of direct local TCP_HIT. >>>>>> >>>>>> I've configured following: >>>>>> dest_domain=.*.source.tld action=ignore-no-cache >>>>>> dest_domain=.*.source.tld revalidate=9999d >>>>>> dest_domain=.*.source.tld ttl-in-cache=9999d >>>>>> >>>>>> CONFIG proxy.config.http.cache.when_to_revalidate INT 3 >>>>>> CONFIG proxy.config.http.cache.required_headers INT 0 >>>>>> >>>>>> But i still get TCP_REFRESH_HIT even when 9999 days have not passed >>>>>> (obviously). >>>>>> >>>>>> NB! ATS is used as internal cache and our 'client' never explicitly >>>>>> requests revalidation. >>>>>> >>>>>> Thanks, >>>>>> Veiko >>>>>> >>>>>> >>>>> >>>> >>> >> >
