blob: 7cdf588345100c0069601e1eb98c16e044774aad (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
pipkin is an S3 HTTP gateway, designed to support the hosting of static websites
from S3 platforms which do not natively provide first-class support for custom
HTTP/TLS termination (e.g. Backblaze B2), and support the use of less-popular
(or even self-managed) content delivery networks.
pipkin transparently pipes responses received from S3 directly to clients; it
consumes ~15MB of RAM and supports concurrent downloads of over 10Gbit/s, and
has no dependencies.
pipkin maps host headers to unique buckets/paths, so it's possible to host
multiple websites from a single bucket. client requests and S3 responses are
filtered against sets of authorized headers. webserver-style indexes and
directory listings are supported. HTTP sockets are re-used between requests.
to improve performance and reduce redundant API transactions/financial DoS, it's
recommended to host pipkin behind a caching proxy (e.g. NGINX) and refresh stale
caches in the background between requests:
location / {
proxy_pass http://127.0.0.1:8085;
proxy_cache proxycache;
proxy_cache_revalidate on;
proxy_cache_background_update on;
proxy_cache_lock on;
proxy_cache_lock_timeout 1s;
proxy_cache_use_stale updating error timeout http_404 http_500;
proxy_cache_valid 200 302 10m;
proxy_cache_valid 404 1m;
}
Usage of ./pipkin:
-conf string
path to JSON config (default "pipkin.json")
-templates string
path to template directory (default "./templates")
|