middleware/proxy: absorb httpproxy (#481)
* middleware/proxy: absorb httpproxy Move the httproxy into proxy. This adds and Exchanger interface which is used to exchange the messages with the upstream. The https_google upstream will re-resolve itself and update the upstream hosts used every 300s. * Remove and add TODO
This commit is contained in:
parent
77f957d443
commit
123a76c91e
21 changed files with 466 additions and 827 deletions
|
@ -19,11 +19,24 @@ func setup(c *caddy.Controller) error {
|
|||
if err != nil {
|
||||
return middleware.Error("proxy", err)
|
||||
}
|
||||
|
||||
P := &Proxy{}
|
||||
dnsserver.GetConfig(c).AddMiddleware(func(next middleware.Handler) middleware.Handler {
|
||||
return Proxy{Next: next, Upstreams: upstreams}
|
||||
P.Next = next
|
||||
P.Upstreams = &upstreams
|
||||
return P
|
||||
})
|
||||
|
||||
c.OnStartup(OnStartup)
|
||||
c.OnStartup(OnStartupMetrics)
|
||||
|
||||
for _, u := range upstreams {
|
||||
c.OnStartup(func() error {
|
||||
return u.Exchanger().OnStartup(P)
|
||||
})
|
||||
c.OnShutdown(func() error {
|
||||
return u.Exchanger().OnShutdown(P)
|
||||
})
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue