Add WIP cache docs

Matt Holt 2019-11-15 16:56:24 -07:00
parent c7c840a664
commit bdea298ad8

@ -80,6 +80,7 @@ This page describes how to use Caddy 2, which is a work-in-progress on the [v2 b
- [http.matchers.file](#httpmatchersfile) - [http.matchers.file](#httpmatchersfile)
- [http/servers/handle](#httpservershandle) - [http/servers/handle](#httpservershandle)
- Middleware (non-terminating handlers): - Middleware (non-terminating handlers):
- [http.handlers.cache](#httphandlerscache)
- [http.handlers.headers](#httphandlersheaders) - [http.handlers.headers](#httphandlersheaders)
- [http.handlers.rewrite](#httphandlersrewrite) - [http.handlers.rewrite](#httphandlersrewrite)
- [http.handlers.markdown](#httphandlersmarkdown) - [http.handlers.markdown](#httphandlersmarkdown)
@ -1202,7 +1203,7 @@ A map of server ID (of your choice) to its configuration object. Each server is
- `max_rehandles`: How many rehandles to allow; prevents infinite looping. - `max_rehandles`: How many rehandles to allow; prevents infinite looping.
- `strict_sni_host`: If true, enforce that an HTTP Host header matches the connection's ServerName (SNI) value from the TLS handshake. Important when using TLS client authentication. - `strict_sni_host`: If true, enforce that an HTTP Host header matches the connection's ServerName (SNI) value from the TLS handshake. Important when using TLS client authentication.
- `experimental_http3`: If true, IETF-draft-compliant HTTP/3 ("QUIC") will be enabled. It creates a UDP listener. This feature is experimental and is not subject to compatibility promises. - `experimental_http3`: If true, IETF-draft-compliant HTTP/3 ("QUIC") will be enabled. It creates a UDP listener. This feature is experimental and is not subject to compatibility promises.
- `logs`: Enables and configures HTTP access and error logging. An empty object uses default settings. Access logs document HTTP requests as they come in; they use the namespace `http.log.access`. Error logs record HTTP handler errors and use the namespace `http.log.error`. - `logs`: Enables and configures HTTP access logging. An empty object uses default settings. Access logs document HTTP requests as they come in; they use the namespace `http.log.access`. Error logs record HTTP handler errors and use the namespace `http.log.error`.
- `logs.logger_names`: Map of request host to custom logger name. For example, if you wanted all requests for `example.com` to be emitted to a logger with a unique name, you can do `"example.com": "example"` and then all access logs related to requests for `example.com` will use a logger named `http.log.access.example` (and same for error logs, but with `.error.` in the name instead). - `logs.logger_names`: Map of request host to custom logger name. For example, if you wanted all requests for `example.com` to be emitted to a logger with a unique name, you can do `"example.com": "example"` and then all access logs related to requests for `example.com` will use a logger named `http.log.access.example` (and same for error logs, but with `.error.` in the name instead).
#### http/servers/listen #### http/servers/listen
@ -1554,6 +1555,36 @@ The response flows ⬆️ **UP** (`file_server` -> `templates` -> `encode`):
If you think of routes in this way, it will be easy and even fun to solve the puzzle of writing correct routes. If you think of routes in this way, it will be easy and even fun to solve the puzzle of writing correct routes.
##### http.handlers.cache
A distributed HTTP cache.
**NOTE: This module is a work-in-progress. It is not finished and is NOT ready for production use. [We need your help to finish it! Please volunteer in this issue.](https://github.com/caddyserver/caddy/issues/2820)**
Caches only GET and HEAD requests. Honors the `Cache-Control: no-cache` header.
Still TODO:
- Eviction policies and API
- Use single cache per-process
- Preserve cache through config reloads
- More control over what gets cached
```json
{
"handler": "cache",
"self": "",
"peers": [],
"max_size": 536870912
}
```
- `self`: The network address of this cache instance; required.
- `peers`: A list of network addresses of cache instances in the group.
- `max_size`: Maximum size of the cache, in bytes. Default is 512 MB.
##### http.handlers.headers ##### http.handlers.headers
Modifies request or response headers. Modifies request or response headers.