4 ms·
How does caching work after you resize? I built a similar thing 5 years ago and for what we were doing I think it was just a redis cache where the key was a ha
by mattbillenstein 9y ago
How does caching work after you resize? I built a similar thing 5 years ago and for what we were doing I think it was just a redis cache where the key was a hash of the source uri and the params for the operation and scaler.
Today I might try to hit the cache from nginx using lua -- and then only call the python thing on a miss.
- codepodu 9y agoWe put it behind Fastly. We could have used Cloudflare too, but we were racing against time (and angry customers!). We set the cache timeout to 1 hour, and that's pretty much it.
- thecodeassassin 9y agoNice! Why did you choose to implement it as a proxy instead of using it as a primary source and just fetch from S3 on-the-fly while caching the generated image? If capacity is the problem then making it HA should solve that issue?
- codepodu 9y agoThat's actually what we did. From pilbox's docs: > It is not intended to be the primary source of images, but instead acts as a proxy which requests images and resizes them as desired. We fetched from S3 on-the-fly while caching the generated image using a CDN we already had at hand. This is a band-aid for the night (we're in India, it's 2 AM here) and not for handling daytime traffic. We're obviously hoping imgix will fix their issues in the next several hours. Even if not, at least our customers get a degraded experience than a broken one.
- thecodeassassin 9y agoDid you try putting something like Varnish in front of it? I think you can do the same with nginx, Varnish is just the first thing that popped up in my mind.
- mattbillenstein 9y agoAt that time, it wasn't a major part of the website -- and I had redis on-hand, so I just did all this work in a couple small python functions inside of our main webapp and used redis to cache. It worked pretty well. I was only introduced to Varnish some years later and I still haven't used it extensively.