/
config.go
144 lines (129 loc) · 2.58 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
package config
import (
"net/http"
"regexp"
"time"
)
type Config struct {
Proxy Proxy
Registry Registry
Listen []Listen
Log Log
Metrics Metrics
UI UI
Runtime Runtime
ProfileMode string
ProfilePath string
Insecure bool
}
type CertSource struct {
Name string
Type string
CertPath string
KeyPath string
ClientCAPath string
CAUpgradeCN string
Refresh time.Duration
Header http.Header
}
type Listen struct {
Addr string
Proto string
ReadTimeout time.Duration
WriteTimeout time.Duration
CertSource CertSource
StrictMatch bool
TLSMinVersion uint16
TLSMaxVersion uint16
TLSCiphers []uint16
}
type UI struct {
Listen Listen
Color string
Title string
Access string
}
type Proxy struct {
Strategy string
Matcher string
NoRouteStatus int
MaxConn int
ShutdownWait time.Duration
DialTimeout time.Duration
ResponseHeaderTimeout time.Duration
KeepAliveTimeout time.Duration
FlushInterval time.Duration
LocalIP string
ClientIPHeader string
TLSHeader string
TLSHeaderValue string
GZIPContentTypes *regexp.Regexp
RequestID string
STSHeader STSHeader
}
type STSHeader struct {
MaxAge int
Subdomains bool
Preload bool
}
type Runtime struct {
GOGC int
GOMAXPROCS int
}
type Circonus struct {
APIKey string
APIApp string
APIURL string
CheckID string
BrokerID string
}
type Log struct {
AccessFormat string
AccessTarget string
RoutesFormat string
Level string
}
type Metrics struct {
Target string
Prefix string
Names string
Interval time.Duration
Timeout time.Duration
Retry time.Duration
GraphiteAddr string
StatsDAddr string
Circonus Circonus
}
type Registry struct {
Backend string
Static Static
File File
Consul Consul
Timeout time.Duration
Retry time.Duration
}
type Static struct {
NoRouteHTML string
Routes string
}
type File struct {
NoRouteHTMLPath string
RoutesPath string
}
type Consul struct {
Addr string
Scheme string
Token string
KVPath string
NoRouteHTMLPath string
TagPrefix string
Register bool
ServiceAddr string
ServiceName string
ServiceTags []string
ServiceStatus []string
CheckInterval time.Duration
CheckTimeout time.Duration
CheckScheme string
CheckTLSSkipVerify bool
}