gitextract_kam7pb3_/ ├── .dockerignore ├── .github/ │ ├── CODEOWNERS │ ├── ISSUE_TEMPLATE.md │ └── workflows/ │ ├── build.yml │ ├── github-pages.yml │ └── go-releaser.yml ├── .gitignore ├── .golangci.yml ├── .goreleaser.yml ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── Dockerfile ├── Dockerfile-goreleaser ├── LICENSE ├── Makefile ├── NOTICES.txt ├── README.md ├── admin/ │ ├── api/ │ │ ├── api.go │ │ ├── config.go │ │ ├── manual.go │ │ ├── paths.go │ │ ├── routes.go │ │ └── version.go │ ├── server.go │ ├── server_test.go │ └── ui/ │ ├── assets/ │ │ └── fonts/ │ │ └── material-icons.css │ ├── generate.go │ ├── manual.go │ ├── route.go │ └── static.go ├── assert/ │ └── assert.go ├── auth/ │ ├── auth.go │ ├── auth_test.go │ ├── basic.go │ └── basic_test.go ├── bgp/ │ ├── bgp_nonwindows.go │ ├── bgp_nonwindows_test.go │ ├── bgp_windows.go │ ├── logger.go │ └── test_data/ │ └── bgp.toml ├── build/ │ ├── ca-certificates.crt │ ├── homebrew.sh │ ├── homebrew.vim │ ├── issue-225-gen-cert.bash │ ├── releasenotes.pl │ ├── tag.sh │ └── update-ssl.sh ├── cert/ │ ├── consul_source.go │ ├── consul_source_test.go │ ├── file_source.go │ ├── http_source.go │ ├── load.go │ ├── load_test.go │ ├── path_source.go │ ├── source.go │ ├── source_test.go │ ├── store.go │ ├── store_test.go │ ├── vault_client.go │ ├── vault_pki_source.go │ ├── vault_source.go │ └── watch.go ├── config/ │ ├── config.go │ ├── default.go │ ├── flagset.go │ ├── flagset_test.go │ ├── kvslice.go │ ├── kvslice_test.go │ ├── load.go │ ├── load_test.go │ └── localip.go ├── demo/ │ └── aws/ │ ├── .gitignore │ ├── main.tf │ ├── outputs.tf │ └── variables.tf ├── docs/ │ ├── .gitignore │ ├── README.md │ ├── archetypes/ │ │ └── default.md │ ├── config.toml │ ├── content/ │ │ ├── _index.md │ │ ├── cfg/ │ │ │ └── _index.md │ │ ├── code-of-conduct/ │ │ │ └── _index.md │ │ ├── contact/ │ │ │ └── _index.md │ │ ├── contrib/ │ │ │ ├── _index.md │ │ │ ├── development.md │ │ │ └── guidelines.md │ │ ├── deploy/ │ │ │ ├── _index.md │ │ │ ├── amazon-api-gw.md │ │ │ ├── amazon-elb.md │ │ │ ├── direct.md │ │ │ └── existing-lb.md │ │ ├── faq/ │ │ │ ├── _index.md │ │ │ ├── binding-to-low-ports.md │ │ │ ├── multiple-protocol-listeners.md │ │ │ ├── request-debugging.md │ │ │ ├── verifying-releases.md │ │ │ └── why-fabio.md │ │ ├── feature/ │ │ │ ├── _index.md │ │ │ ├── access-control.md │ │ │ ├── access-logging.md │ │ │ ├── authorization.md │ │ │ ├── bgp.md │ │ │ ├── certificate-stores.md │ │ │ ├── docker.md │ │ │ ├── dynamic-reloading.md │ │ │ ├── graceful-shutdown.md │ │ │ ├── grpc-proxy.md │ │ │ ├── http-compression.md │ │ │ ├── http-headers.md │ │ │ ├── http-path-prepending.md │ │ │ ├── http-path-stripping.md │ │ │ ├── http-redirects.md │ │ │ ├── https-tcp-sni-proxy.md │ │ │ ├── https-upstream.md │ │ │ ├── metrics.md │ │ │ ├── proxy-protocol.md │ │ │ ├── sse.md │ │ │ ├── tcp-dynamic-proxy.md │ │ │ ├── tcp-proxy.md │ │ │ ├── tcp-sni-proxy.md │ │ │ ├── traffic-shaping.md │ │ │ ├── vault.md │ │ │ ├── web-ui.md │ │ │ └── websockets.md │ │ ├── quickstart/ │ │ │ └── _index.md │ │ └── ref/ │ │ ├── _index.md │ │ ├── bgp.anycastaddresses.md │ │ ├── bgp.asn.md │ │ ├── bgp.certfile.md │ │ ├── bgp.enabled.md │ │ ├── bgp.enablegrpc.md │ │ ├── bgp.gobgpdcfgfile.md │ │ ├── bgp.grpclistenaddress.md │ │ ├── bgp.grpctls.md │ │ ├── bgp.keyfile.md │ │ ├── bgp.listenaddresses.md │ │ ├── bgp.listenport.md │ │ ├── bgp.nexthop.md │ │ ├── bgp.peers.md │ │ ├── bgp.routerid.md │ │ ├── glob.cache.size.md │ │ ├── glob.matching.disabled.md │ │ ├── log.access.format.md │ │ ├── log.access.target.md │ │ ├── log.level.md │ │ ├── log.routes.format.md │ │ ├── metrics.circonus.apiapp.md │ │ ├── metrics.circonus.apikey.md │ │ ├── metrics.circonus.apiurl.md │ │ ├── metrics.circonus.brokerid.md │ │ ├── metrics.circonus.checkid.md │ │ ├── metrics.circonus.submissionurl.md │ │ ├── metrics.dogstatsd.addr.md │ │ ├── metrics.graphite.addr.md │ │ ├── metrics.interval.md │ │ ├── metrics.names.md │ │ ├── metrics.prefix.md │ │ ├── metrics.prometheus.buckets.md │ │ ├── metrics.prometheus.path.md │ │ ├── metrics.prometheus.subsystem.md │ │ ├── metrics.retry.md │ │ ├── metrics.statsd.addr.md │ │ ├── metrics.target.md │ │ ├── metrics.timeout.md │ │ ├── proxy.addr.md │ │ ├── proxy.auth.md │ │ ├── proxy.cs.md │ │ ├── proxy.deregistergraceperiod.md │ │ ├── proxy.dialtimeout.md │ │ ├── proxy.flushinterval.md │ │ ├── proxy.globalflushinterval.md │ │ ├── proxy.grpcmaxrxmsgsize.md │ │ ├── proxy.grpcmaxtxmsgsize.md │ │ ├── proxy.grpcshutdowntimeout.md │ │ ├── proxy.gzip.contenttype.md │ │ ├── proxy.header.clientip.md │ │ ├── proxy.header.requestid.md │ │ ├── proxy.header.sts.maxage.md │ │ ├── proxy.header.sts.preload.md │ │ ├── proxy.header.sts.subdomains.md │ │ ├── proxy.header.tls.md │ │ ├── proxy.header.tls.value.md │ │ ├── proxy.idleconntimeout.md │ │ ├── proxy.keepalivetimeout.md │ │ ├── proxy.localip.md │ │ ├── proxy.matcher.md │ │ ├── proxy.maxconn.md │ │ ├── proxy.noroutestatus.md │ │ ├── proxy.responseheadertimeout.md │ │ ├── proxy.shutdownwait.md │ │ ├── proxy.strategy.md │ │ ├── registry.backend.md │ │ ├── registry.consul.addr.md │ │ ├── registry.consul.checksRequired.md │ │ ├── registry.consul.kvpath.md │ │ ├── registry.consul.namespace.md │ │ ├── registry.consul.noroutehtmlpath.md │ │ ├── registry.consul.pollInterval.md │ │ ├── registry.consul.register.addr.md │ │ ├── registry.consul.register.checkInterval.md │ │ ├── registry.consul.register.checkTLSSkipVerify.md │ │ ├── registry.consul.register.checkTimeout.md │ │ ├── registry.consul.register.deregisterCriticalServiceAfter.md │ │ ├── registry.consul.register.enabled.md │ │ ├── registry.consul.register.name.md │ │ ├── registry.consul.register.tags.md │ │ ├── registry.consul.service.status.md │ │ ├── registry.consul.serviceMonitors.md │ │ ├── registry.consul.tagprefix.md │ │ ├── registry.consul.token.md │ │ ├── registry.custom.checkTLSSkipVerify.md │ │ ├── registry.custom.host.md │ │ ├── registry.custom.path.md │ │ ├── registry.custom.pollinginterval.md │ │ ├── registry.custom.queryparams.md │ │ ├── registry.custom.scheme.md │ │ ├── registry.custom.timeout.md │ │ ├── registry.file.noroutehtmlpath.md │ │ ├── registry.file.path.md │ │ ├── registry.retry.md │ │ ├── registry.static.noroutehtmlpath.md │ │ ├── registry.static.routes.md │ │ ├── registry.timeout.md │ │ ├── runtime.gogc.md │ │ ├── runtime.gomaxprocs.md │ │ ├── ui.access.md │ │ ├── ui.addr.md │ │ ├── ui.color.md │ │ ├── ui.routingtable.source.host.md │ │ ├── ui.routingtable.source.linkenabled.md │ │ ├── ui.routingtable.source.newtab.md │ │ ├── ui.routingtable.source.port.md │ │ ├── ui.routingtable.source.scheme.md │ │ └── ui.title.md │ ├── layouts/ │ │ ├── 404.html │ │ ├── _default/ │ │ │ ├── section.html │ │ │ └── single.html │ │ ├── index.html │ │ └── partials/ │ │ ├── footer.html │ │ ├── header.html │ │ └── sidebar.html │ └── static/ │ ├── CNAME │ ├── check/ │ │ └── ok │ ├── css/ │ │ └── custom.css │ ├── fonts/ │ │ └── FontAwesome.otf │ ├── img/ │ │ └── manifest.json │ └── js/ │ └── custom.js ├── exit/ │ ├── listen.go │ └── listen_test.go ├── fabio.iml ├── fabio.properties ├── go.mod ├── go.sum ├── logger/ │ ├── level_writer.go │ ├── level_writer_test.go │ ├── logger.go │ ├── logger_test.go │ └── pattern.go ├── main.go ├── metrics/ │ ├── metrics.go │ ├── names.go │ ├── names_test.go │ ├── provider_circonus.go │ ├── provider_circonus_test.go │ ├── provider_discard.go │ ├── provider_dogstatsd.go │ ├── provider_dogstatsd_test.go │ ├── provider_flat.go │ ├── provider_graphite.go │ ├── provider_label.go │ ├── provider_multi.go │ ├── provider_prometheus.go │ ├── provider_prometheus_test.go │ ├── provider_statsd.go │ └── provider_statsd_test.go ├── noroute/ │ ├── store.go │ └── store_test.go ├── proxy/ │ ├── grpc_handler.go │ ├── gzip/ │ │ ├── content_type_test.go │ │ ├── gzip_handler.go │ │ └── gzip_handler_test.go │ ├── http_handler.go │ ├── http_headers.go │ ├── http_headers_test.go │ ├── http_integration_test.go │ ├── http_proxy.go │ ├── inetaf_tcpproxy.go │ ├── inetaf_tcpproxy_integration_test.go │ ├── internal/ │ │ └── testcert.go │ ├── listen.go │ ├── listen_test.go │ ├── serve.go │ ├── tcp/ │ │ ├── copy_buffer.go │ │ ├── proxy_proto.go │ │ ├── server.go │ │ ├── sni_proxy.go │ │ ├── tcp_dynamic_proxy.go │ │ ├── tcp_proxy.go │ │ ├── tcptest/ │ │ │ ├── dialer.go │ │ │ └── server.go │ │ ├── tls_clienthello.go │ │ └── tls_clienthello_test.go │ ├── tcp_integration_test.go │ ├── ws_handler.go │ └── ws_integration_test.go ├── registry/ │ ├── backend.go │ ├── consul/ │ │ ├── backend.go │ │ ├── kv.go │ │ ├── passing.go │ │ ├── passing_test.go │ │ ├── register.go │ │ ├── routecmd.go │ │ ├── routecmd_test.go │ │ └── service.go │ ├── custom/ │ │ ├── backend.go │ │ ├── custom.go │ │ └── custom_test.go │ ├── file/ │ │ └── backend.go │ └── static/ │ └── backend.go ├── rootwarn_unix.go ├── rootwarn_windows.go ├── route/ │ ├── access_rules.go │ ├── access_rules_test.go │ ├── auth.go │ ├── auth_test.go │ ├── glob_cache.go │ ├── glob_cache_test.go │ ├── issue57_test.go │ ├── matcher.go │ ├── matcher_test.go │ ├── metrics_cleanup_test.go │ ├── parse_new.go │ ├── parse_test.go │ ├── picker.go │ ├── picker_test.go │ ├── route.go │ ├── route_bench_test.go │ ├── route_def.go │ ├── routes.go │ ├── table.go │ ├── table_registry_test.go │ ├── table_test.go │ ├── target.go │ └── target_test.go ├── transport/ │ └── transport.go └── uuid/ ├── format.go └── uuid.go