dans-ton-cache

module
v0.0.0-...-dc023d0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 23, 2020 License: BSD-3-Clause

README

Dans Ton Cache

Using golang-LRU as a HTTP cache.

Build it

make bin

Try it

Launch imgproxy

IMGPROXY_ENABLE_WEBP_DETECTION=true ./imgproxy

Launch caching proxy

LISTEN=:8000 BACKEND=http://localhost:8080  ./bin/dtc-proxy

Try official test url : http://localhost:8000/insecure/fill/300/400/sm/0/aHR0cHM6Ly9tLm1l/ZGlhLWFtYXpvbi5j/b20vaW1hZ2VzL00v/TVY1Qk1tUTNabVk0/TnpZdFkyVm1ZaTAw/WkRSbUxUZ3lPREF0/WldZelpqaGxOemsx/TnpVMlhrRXlYa0Zx/Y0dkZVFYVnlOVGMz/TWpVek5USUAuanBn

Watch for X-Cache header. Modern browser accept webp, and imgproxy handle it.

Try it with curl

$ curl -v http://localhost:8000/insecure/fill/300/400/sm/0/aHR0cHM6Ly9tLm1l/ZGlhLWFtYXpvbi5j/b20vaW1hZ2VzL00v/TVY1Qk1tUTNabVk0/TnpZdFkyVm1ZaTAw/WkRSbUxUZ3lPREF0/WldZelpqaGxOemsx/TnpVMlhrRXlYa0Zx/Y0dkZVFYVnlOVGMz/TWpVek5USUAuanBn > /dev/null

*   Trying ::1...
* TCP_NODELAY set
* Connected to localhost (::1) port 8000 (#0)
> GET /insecure/fill/300/400/sm/0/aHR0cHM6Ly9tLm1l/ZGlhLWFtYXpvbi5j/b20vaW1hZ2VzL00v/TVY1Qk1tUTNabVk0/TnpZdFkyVm1ZaTAw/WkRSbUxUZ3lPREF0/WldZelpqaGxOemsx/TnpVMlhrRXlYa0Zx/Y0dkZVFYVnlOVGMz/TWpVek5USUAuanBn HTTP/1.1
> Host: localhost:8000
> User-Agent: curl/7.54.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Cache-Control: max-age=3600, public
< Content-Disposition: inline; filename="MV5BMmQ3ZmY4NzYtY2VmYi00ZDRmLTgyODAtZWYzZjhlNzk1NzU2XkEyXkFqcGdeQXVyNTc3MjUzNTI@.jpg"
< Content-Length: 19821
< Content-Type: image/jpeg
< Date: Mon, 23 Nov 2020 22:25:19 GMT
< Expires: Tue, 24 Nov 2020 00:25:19 GMT
< Server: imgproxy
< Vary: Accept
< X-Cache: hit
< X-Request-Id: 6U2C-TTfcLYfahCWsxmb4
<
{ [16384 bytes data]
* Connection #0 to host localhost left intact

Watch the cache guts

$ file /tmp/proxy/5a1d62976a02cc35689b3321ed331def714b35d912fd3462f8cda50d9e2f257b
/tmp/proxy/5a1d62976a02cc35689b3321ed331def714b35d912fd3462f8cda50d9e2f257b: JPEG image data, baseline, precision 8, 300x400, frames 3

$ cat /tmp/proxy/5a1d62976a02cc35689b3321ed331def714b35d912fd3462f8cda50d9e2f257b.header
Cache-Control: max-age=3600, public
Content-Disposition: inline; filename="MV5BMmQ3ZmY4NzYtY2VmYi00ZDRmLTgyODAtZWYzZjhlNzk1NzU2XkEyXkFqcGdeQXVyNTc3MjUzNTI@.jpg"
Content-Length: 19821
Content-Type: image/jpeg
Date: Mon, 23 Nov 2020 22:25:19 GMT
Expires: Tue, 24 Nov 2020 00:25:19 GMT
Server: imgproxy
Vary: Accept
X-Request-Id: 6U2C-TTfcLYfahCWsxmb4

$ file /tmp/proxy/ad19087e050ee8e0cbb08c07f11ba12a1c5852727a32ab9ee5d071825c75e073
/tmp/proxy/ad19087e050ee8e0cbb08c07f11ba12a1c5852727a32ab9ee5d071825c75e073: RIFF (little-endian) data, Web/P image, VP8 encoding, 300x400, Scaling: [none]x[none], YUV color, decoders should clamp

$ cat /tmp/proxy/ad19087e050ee8e0cbb08c07f11ba12a1c5852727a32ab9ee5d071825c75e073.header
Cache-Control: max-age=3600, public
Content-Disposition: inline; filename="MV5BMmQ3ZmY4NzYtY2VmYi00ZDRmLTgyODAtZWYzZjhlNzk1NzU2XkEyXkFqcGdeQXVyNTc3MjUzNTI@.webp"
Content-Length: 14804
Content-Type: image/webp
Date: Mon, 23 Nov 2020 22:25:43 GMT
Expires: Tue, 24 Nov 2020 00:25:43 GMT
Server: imgproxy
Vary: Accept
X-Request-Id: IXQCOZ0Uzii0uBF3kKGBd

Directories

Path Synopsis
cmd

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL