mirror of
https://github.com/caddyserver/caddy.git
synced 2025-07-09 03:04:57 -04:00
GetConfig now takes a Controller, not just a key string
parent
1f8aee2ff9
commit
f863d58fa7
@ -51,6 +51,6 @@ Caddy tries to avoid as much global state as possible. When Caddy loads, parses,
|
|||||||
|
|
||||||
Each time Caddy goes through this startup phase, it will create a new caddy.Instance and Caddy will ask your server type for a new [caddy.Context](https://godoc.org/github.com/mholt/caddy#Context) value so that it can execute your server's directives without sharing global state. Read the godoc for caddy.Context for more information.
|
Each time Caddy goes through this startup phase, it will create a new caddy.Instance and Caddy will ask your server type for a new [caddy.Context](https://godoc.org/github.com/mholt/caddy#Context) value so that it can execute your server's directives without sharing global state. Read the godoc for caddy.Context for more information.
|
||||||
|
|
||||||
Ultimately, your goal is to make it so that `MakeServers()` returns a list of servers that Caddy can use. How you do that is entirely up to you. The HTTP server keeps a map of configs in its context and has an exported function, `GetConfig(key string)` that gets a config for a certain site, designated by the key that is passed in. The config, in turn, store the list of middleware, etc -- all the information needed to set up a site. Each directive's action calls that function because each directive is passed the key. Then all `MakeServers()` has to do is combine those site configs into server instances and return them. (Server instances are types on which you can call `Listen()` and `Serve()`.)
|
Ultimately, your goal is to make it so that `MakeServers()` returns a list of servers that Caddy can use. How you do that is entirely up to you. The HTTP server keeps a map of configs in its context and has an exported function, `GetConfig(c Controller)` that gets a config for a certain site, designated by the [caddy.Controller](https://godoc.org/github.com/mholt/caddy#Controller) that is passed in. The config, in turn, store the list of middleware, etc -- all the information needed to set up a site. Each directive's action calls that function because each directive is passed a Controller. Then all `MakeServers()` has to do is combine those site configs into server instances and return them. (Server instances are types on which you can call `Listen()` and `Serve()`.)
|
||||||
|
|
||||||
(TODO: Expand this guide with more information...)
|
(TODO: Expand this guide with more information...)
|
Loading…
x
Reference in New Issue
Block a user