System Integration¶
CDN Integration¶
How To Integrate LeoFS With CDN¶
There is nothing special to do for integrating LeoFS with CDN1. Since almost CDN service providers take care of a CacheControl Header received from an origin to determine how long a file should be cached on their edge servers, so if you want to modify TTL according to URLs, you can do it by using http_custom_header.conf
.
How To Use http_custom_header.conf
¶
Append the following line to leo_gateway.conf
which contains a LeoGateway's directory. Arrange the http_custom_header.conf
into the path specified at leo_gateway.conf
.
1 2 | ## HTTP custom header configuration file path http.headers_config_file = ./etc/http_custom_header.conf |
How To Write http_custom_header.conf
¶
The syntax is a subset of Nginx2 configuration. You can use location contexts to specify TTL and add any headers to the path.
1 2 3 4 5 | location bucket/static { expires 12h; add_header Cache-Control public; add_header X-OriginalHeader OriginalValue; } |
In this case, assuming that a CDN service already has been enabled, and there is a file at bucket/static/path_to_file
, if a user browses that file via the CDN. The CDN will receive a response from a LeoFS system with customized Http headers.
1 2 | Cache-Control: public, max-age=43200; X-OriginalHeader: OriginalValue; |
Use Cases¶
Specify TTL by the bucket.
1 2 3 4 5 6 7 8 9 10 11 12 | location bucket1 { expires 1h; add_header Cache-Control public; } location bucket2 { expires 1d; add_header Cache-Control public; } location bucket3 { expires 1h30m; add_header Cache-Control private; } |
Appendix¶
Syntax for the expire field¶
LeoFS supports a part of measurement units which can be used in Nginx configuration. Following time intervals can be specified.
1 2 3 4 | s: seconds m: minutes h: hours d: days |
List of verified CDN services¶
LeoFS Team tested the following CDN services with LeoFS. We recognize that other CDN services also should work.