Ah… sorry about that.

Stephen

> On Nov 23, 2017, at 10:22, Veiko Kukk <[email protected]> wrote:
> 
> Hi Stephen,
> 
> As i wrote in my first post, i've set CONFIG 
> proxy.config.http.cache.when_to_revalidate INT 3
> 
> Veiko
> 
> 
> 2017-11-23 19:56 GMT+02:00 Stephen Washburn <[email protected]>:
>> Apologies if I’m missing something, but doesn’t that page say that there is 
>> an option to have it treat freshness as such:
>> 
>>> Traffic Server considers all HTTP objects in the cache to be fresh:
>>> Never revalidate HTTP objects in the cache with the origin server.
>> 
>> By modifying proxy.config.http.cache.when_to_revalidate
>> 
>> https://docs.trafficserver.apache.org/en/7.1.x/admin-guide/files/records.config.en.html#proxy-config-http-cache-when-to-revalidate
>> 
>> Stephen
>> 
>>> On Nov 23, 2017, at 09:26, Veiko Kukk <[email protected]> wrote:
>>> 
>>> 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
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
> 

Reply via email to