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.