mirror of
https://github.com/caddyserver/caddy.git
synced 2024-11-25 09:40:13 +08:00
reverseproxy: Add ID field for upstreams
This commit is contained in:
parent
a779e1b383
commit
a5f4fae145
|
@ -34,7 +34,8 @@ type adminUpstreams struct{}
|
|||
|
||||
// upstreamResults holds the status of a particular upstream
|
||||
type upstreamStatus struct {
|
||||
Address string `json:"address"`
|
||||
ID string `json:"id"`
|
||||
Address string `json:"address"` // Address is deprecated, should be removed in a future release.
|
||||
Healthy bool `json:"healthy"`
|
||||
NumRequests int `json:"num_requests"`
|
||||
Fails int `json:"fails"`
|
||||
|
@ -78,7 +79,7 @@ func (adminUpstreams) handleUpstreams(w http.ResponseWriter, r *http.Request) er
|
|||
// Iterate over the upstream pool (needs to be fast)
|
||||
var rangeErr error
|
||||
hosts.Range(func(key, val interface{}) bool {
|
||||
address, ok := key.(string)
|
||||
id, ok := key.(string)
|
||||
if !ok {
|
||||
rangeErr = caddy.APIError{
|
||||
HTTPStatus: http.StatusInternalServerError,
|
||||
|
@ -97,7 +98,8 @@ func (adminUpstreams) handleUpstreams(w http.ResponseWriter, r *http.Request) er
|
|||
}
|
||||
|
||||
results = append(results, upstreamStatus{
|
||||
Address: address,
|
||||
ID: id,
|
||||
Address: id,
|
||||
Healthy: !upstream.Unhealthy(),
|
||||
NumRequests: upstream.NumRequests(),
|
||||
Fails: upstream.Fails(),
|
||||
|
|
|
@ -65,6 +65,12 @@ type UpstreamPool []*Upstream
|
|||
type Upstream struct {
|
||||
Host `json:"-"`
|
||||
|
||||
// The unique ID for this upstream, to disambiguate multiple
|
||||
// upstreams with the same Dial address. This is optional,
|
||||
// and only necessary if the upstream states need to be
|
||||
// separate, such as having different health checking policies.
|
||||
ID string `json:"id,omitempty"`
|
||||
|
||||
// The [network address](/docs/conventions#network-addresses)
|
||||
// to dial to connect to the upstream. Must represent precisely
|
||||
// one socket (i.e. no port ranges). A valid network address
|
||||
|
@ -98,6 +104,9 @@ type Upstream struct {
|
|||
}
|
||||
|
||||
func (u Upstream) String() string {
|
||||
if u.ID != "" {
|
||||
return u.ID
|
||||
}
|
||||
if u.LookupSRV != "" {
|
||||
return u.LookupSRV
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user