forked from fabiolb/fabio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
fabio.properties
318 lines (270 loc) · 7.57 KB
/
fabio.properties
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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
# proxy.addr configures the HTTP and HTTPS listeners as a comma separated list.
#
# To configure an HTTP listener provide [host]:port.
# To configure an HTTPS listener provide [host]:port;certFile;keyFile;clientAuthFile.
# certFile and keyFile contain the public/private key pair for that listener
# in PEM format. If certFile contains both the public and private key then
# keyFile can be omittted.
# clientAuthFile contains the root CAs for client certificate validation.
# When clientAuthFile is provided the TLS configuration is set to
# RequireAndVerifyClientCert.
#
# Configure a single HTTP listener on port 9999:
#
# proxy.addr = :9999
#
# Configure both an HTTP and HTTPS listener:
#
# proxy.addr = :9999,:443;path/to/cert.pem;path/to/key.pem;path/to/clientauth.pem
#
# Configure multiple HTTP and HTTPS listeners on IPv4 and IPv6:
#
# proxy.addr = \
# 1.2.3.4:9999, \
# 5.6.7.8:9999, \
# [2001:DB8::A/32]:9999, \
# [2001:DB8::B/32]:9999, \
# 1.2.3.4:443;path/to/certA.pem;path/to/keyA.pem, \
# 5.6.7.8:443;path/to/certB.pem;path/to/keyB.pem, \
# [2001:DB8::A/32]:443;path/to/certA.pem;path/to/keyA.pem, \
# [2001:DB8::B/32]:443;path/to/certB.pem;path/to/keyB.pem
#
# The default is
#
# proxy.addr = :9999
# proxy.localip configures the ip address of the proxy which is added
# to the X-Forwarded-For and Forwarded headers.
#
# The local non-loopback address is detected during startup
# but can be overwritten with this property.
#
# The default is
#
# proxy.localip =
# proxy.strategy configures the load balancing strategy.
#
# rnd: pseudo-random distribution
# rr: round-robin distribution
#
# "rnd" configures a pseudo-random distribution by using the microsecond
# fraction of the time of the request.
#
# "rr" configures a round-robin distribution.
#
# The default is
#
# proxy.strategy = rnd
# proxy.shutdownwait configures the time for a graceful shutdown.
#
# After a signal is caught the proxy will immediately suspend
# routing traffic and respond with a 503 Service Unavailable
# for the duration of the given period.
#
# The default is
#
# proxy.shutdownwait = 0s
# proxy.timeout configures the response header and keep-alive timeout.
#
# This configures the ResponseHeaderTimeout of the http.Transport
# and the KeepAliveTimeout of the network dialer.
#
# The default is
#
# proxy.timeout = 0s
# proxy.dialtimeout configures the connection timeout.
#
# This configures the DialTimeout of the network dialer.
#
# The default is
#
# proxy.dialtimeout = 30s
# proxy.maxconn configures the maximum number of cached connections.
#
# This configures the MaxConnsPerHost of the http.Transport.
#
# The default is
#
# proxy.maxconn = 10000
# proxy.routes configures a static routing table.
#
# Setting this to a non-empty value will disable the automatic route
# generation from consul and use only this static routing table.
# If the entry starts with '@' it is considered to be a path to
# a file.
#
# Example:
#
# proxy.routes = \
# route add svc / http://1.2.3.4:5000/
#
# or
#
# proxy.routes = @routes.txt
#
# The default is
#
# proxy.routes =
# proxy.header.clientip configures the header for the request ip.
#
# The remoteIP is taken from http.Request.RemoteAddr.
# The localIP is either detected or the value of proxy.localip.
#
# When set to 'X-Forwarded-For' the proxy will set this header to
#
# <remoteIP>, <localIP>
#
# if the header is not set in the incoming request. Otherwise, it
# will just append
#
# , <localIP>
#
# to the existing header value.
#
# When set to another non-empty value the proxy will set this header
# to
#
# <remoteIP>
#
# The default is
#
# proxy.header.clientip =
# proxy.header.tls configures the header to set for TLS connections.
#
# When set to a non-empty value the proxy will set this header on every
# TLS request to the value of ${proxy.header.tls.value}
#
# The default is
#
# proxy.header.tls =
# proxy.header.tls.value =
# consul.addr configures the address of the consul agent to connect to.
#
# The default is
#
# consul.addr = localhost:8500
# consul.kvpath configures the KV path for manual routes.
#
# The consul KV path is watched for changes which get appended to
# the routing table. This allows for manual overrides and weighted
# round-robin routes.
#
# The default is
#
# consul.kvpath = /fabio/config
# consul.tagprefix configures the prefix for tags which define routes.
#
# Services which define routes publish one or more tags with host/path
# routes which they serve. These tags must have this prefix to be
# recognized as routes.
#
# The default is
#
# consul.tagprefix = urlprefix-
# consul.register.name configures the name for the service registration.
#
# Fabio registers itself in consul under this service name.
#
# The default is
#
# consul.register.name = fabio
# consul.register.checkInterval configures the interval for the health check.
#
# Fabio registers an http health check on http://${ui.addr}/health
# and this value tells consul how often to check it.
#
# The default is
#
# consul.register.checkInterval = 1s
# consul.register.checkTimeout configures the timeout for the health check.
#
# Fabio registers an http health check on http://${ui.addr}/health
# and this value tells consul how long to wait for a response.
#
# The default is
#
# consul.register.checkTimeout = 3s
# metrics.target configures the backend the metrics values are
# sent to.
#
# Possible values are:
# <empty>: do not report metrics
# stdout: report metrics to stdout
# graphite: report metrics to Graphite on ${metrics.graphite.addr}
#
# The default is
#
# metrics.target =
# metrics.prefix configures the prefix of all reported metrics.
#
# Each metric has a unique name which is hard-coded to
#
# prefix.service.host.path.target-addr
#
# When set to "default" the prefix is <hostname>.<executable>
#
# The default is
#
# metrics.prefix = default
# metrics.interval configures the interval in which metrics are
# reported.
#
# The default is
#
# metrics.interval = 30s
# metrics.graphite.addr configures the host:port of the Graphite
# server. This is required when ${metrics.target} is set to "graphite".
#
# The default is
#
# metrics.graphite.addr =
# runtime.gogc configures GOGC (the GC target percentage).
#
# Setting runtime.gogc is equivalent to setting the GOGC
# environment variable which also takes precendence over
# the value from the config file.
#
# Increasing this value means fewer but longer GC cycles
# since there is more garbage to collect.
#
# The default of GOGC=100 works for Go 1.4 but shows
# a significant performance drop for Go 1.5 since the
# concurrent GC kicks in more often.
#
# During benchmarking I have found the following values
# to work for my setup and for now I consider them sane
# defaults for both Go 1.4 and Go 1.5.
#
# GOGC=100: Go 1.5 40% slower than Go 1.4
# GOGC=200: Go 1.5 == Go 1.4 with GOGC=100 (default)
# GOGC=800: both Go 1.4 and 1.5 significanlty faster (40%/go1.4, 100%/go1.5)
#
# The default is
#
# runtime.gogc = 800
# runtime.gomaxprocs configures GOMAXPROCS.
#
# Setting runtime.gomaxprocs is equivalent to setting the GOMAXPROCS
# environment variable which also takes precendence over
# the value from the config file.
#
# If runtime.gomaxprocs < 0 then all CPU cores are used.
#
# The default is
#
# runtime.gomaxprocs = -1
# ui.addr configures the address the UI is listening on
#
# The default is
#
# ui.addr = :9998
# ui.color configures the background color of the UI.
# Color names are from http://materializecss.com/color.html
#
# The default is
#
# ui.color = light-green
# ui.title configures an optional title for the UI.
#
# The default is
#
# ui.title =