From e3627e9cbad3291116cc18cc4f17bd1000aa4653 Mon Sep 17 00:00:00 2001 From: Julien Salleyron Date: Fri, 19 Jul 2019 10:50:05 +0200 Subject: [PATCH] Disable RateLimit temporarily --- docs/content/middlewares/ratelimit.md | 3 + .../reference/dynamic-configuration/file.toml | 12 -- .../reference/dynamic-configuration/file.yaml | 12 -- .../dynamic-configuration/labels.yml | 7 - integration/access_log_test.go | 2 + integration/integration_test.go | 3 +- integration/resources/compose/access_log.yml | 25 +-- integration/tracing_test.go | 4 + pkg/config/dynamic/middlewares.go | 21 +-- pkg/config/dynamic/zz_generated.deepcopy.go | 5 - pkg/config/label/label_test.go | 154 +++++++++--------- pkg/server/middleware/middlewares.go | 18 +- 12 files changed, 122 insertions(+), 144 deletions(-) diff --git a/docs/content/middlewares/ratelimit.md b/docs/content/middlewares/ratelimit.md index 65dbc84ba..2194a6f71 100644 --- a/docs/content/middlewares/ratelimit.md +++ b/docs/content/middlewares/ratelimit.md @@ -1,5 +1,8 @@ # RateLimit +!!! warning + This middleware is disable for now. + Protection from Too Many Calls {: .subtitle } diff --git a/docs/content/reference/dynamic-configuration/file.toml b/docs/content/reference/dynamic-configuration/file.toml index bf59ba1e1..b9ada6726 100644 --- a/docs/content/reference/dynamic-configuration/file.toml +++ b/docs/content/reference/dynamic-configuration/file.toml @@ -186,18 +186,6 @@ commonName = true serialNumber = true domainComponent = true - [http.middlewares.Middleware13] - [http.middlewares.Middleware13.rateLimit] - extractorFunc = "foobar" - [http.middlewares.Middleware13.rateLimit.rateSet] - [http.middlewares.Middleware13.rateLimit.rateSet.Rate0] - period = "42ns" - average = 42 - burst = 42 - [http.middlewares.Middleware13.rateLimit.rateSet.Rate1] - period = "42ns" - average = 42 - burst = 42 [http.middlewares.Middleware14] [http.middlewares.Middleware14.redirectRegex] regex = "foobar" diff --git a/docs/content/reference/dynamic-configuration/file.yaml b/docs/content/reference/dynamic-configuration/file.yaml index 083b79c7c..b3120bb61 100644 --- a/docs/content/reference/dynamic-configuration/file.yaml +++ b/docs/content/reference/dynamic-configuration/file.yaml @@ -212,18 +212,6 @@ http: commonName: true serialNumber: true domainComponent: true - Middleware13: - rateLimit: - rateSet: - Rate0: - period: 42ns - average: 42 - burst: 42 - Rate1: - period: 42ns - average: 42 - burst: 42 - extractorFunc: foobar Middleware14: redirectRegex: regex: foobar diff --git a/docs/content/reference/dynamic-configuration/labels.yml b/docs/content/reference/dynamic-configuration/labels.yml index 01fd638ec..b62c36b2a 100644 --- a/docs/content/reference/dynamic-configuration/labels.yml +++ b/docs/content/reference/dynamic-configuration/labels.yml @@ -83,13 +83,6 @@ - "traefik.http.middlewares.middleware12.passtlsclientcert.info.subject.province=true" - "traefik.http.middlewares.middleware12.passtlsclientcert.info.subject.serialnumber=true" - "traefik.http.middlewares.middleware12.passtlsclientcert.pem=true" - - "traefik.http.middlewares.middleware13.ratelimit.extractorfunc=foobar" - - "traefik.http.middlewares.middleware13.ratelimit.rateset.rate0.average=42" - - "traefik.http.middlewares.middleware13.ratelimit.rateset.rate0.burst=42" - - "traefik.http.middlewares.middleware13.ratelimit.rateset.rate0.period=42" - - "traefik.http.middlewares.middleware13.ratelimit.rateset.rate1.average=42" - - "traefik.http.middlewares.middleware13.ratelimit.rateset.rate1.burst=42" - - "traefik.http.middlewares.middleware13.ratelimit.rateset.rate1.period=42" - "traefik.http.middlewares.middleware14.redirectregex.permanent=true" - "traefik.http.middlewares.middleware14.redirectregex.regex=foobar" - "traefik.http.middlewares.middleware14.redirectregex.replacement=foobar" diff --git a/integration/access_log_test.go b/integration/access_log_test.go index 807d1232b..c87daaaf3 100644 --- a/integration/access_log_test.go +++ b/integration/access_log_test.go @@ -309,6 +309,8 @@ func (s *AccessLogSuite) TestAccessLogFrontendRedirect(c *check.C) { } func (s *AccessLogSuite) TestAccessLogRateLimit(c *check.C) { + c.Skip("RateLimit is disable for now") + ensureWorkingDirectoryIsClean() expected := []accessLogValue{ diff --git a/integration/integration_test.go b/integration/integration_test.go index 3d0779f82..1ab4da6a8 100644 --- a/integration/integration_test.go +++ b/integration/integration_test.go @@ -54,7 +54,8 @@ func init() { check.Suite(&LogRotationSuite{}) check.Suite(&MarathonSuite{}) check.Suite(&MarathonSuite15{}) - check.Suite(&RateLimitSuite{}) + // TODO: disable temporarily + // check.Suite(&RateLimitSuite{}) check.Suite(&RestSuite{}) check.Suite(&RetrySuite{}) check.Suite(&SimpleSuite{}) diff --git a/integration/resources/compose/access_log.yml b/integration/resources/compose/access_log.yml index bd080630e..d07f6d8a1 100644 --- a/integration/resources/compose/access_log.yml +++ b/integration/resources/compose/access_log.yml @@ -55,18 +55,19 @@ frontendRedirect: - traefik.http.middlewares.redirecthttp.redirectScheme.scheme=http - traefik.http.middlewares.redirecthttp.redirectScheme.port=8000 - traefik.http.services.service3.loadbalancer.server.port=80 -rateLimit: - image: containous/whoami - labels: - - traefik.enable=true - - traefik.http.routers.rt-rateLimit.entryPoints=httpRateLimit - - traefik.http.routers.rt-rateLimit.rule=Host("ratelimit.docker.local") - - traefik.http.routers.rt-rateLimit.middlewares=rate - - traefik.http.middlewares.rate.ratelimit.extractorfunc=client.ip - - traefik.http.middlewares.rate.ratelimit.rateset.Rate0.average=1 - - traefik.http.middlewares.rate.ratelimit.rateset.Rate0.burst=2 - - traefik.http.middlewares.rate.ratelimit.rateset.Rate0.period=10s - - traefik.http.services.service3.loadbalancer.server.port=80 +# TODO: disable temporarily (rateLimit) +#rateLimit: +# image: containous/whoami +# labels: +# - traefik.enable=true +# - traefik.http.routers.rt-rateLimit.entryPoints=httpRateLimit +# - traefik.http.routers.rt-rateLimit.rule=Host("ratelimit.docker.local") +# - traefik.http.routers.rt-rateLimit.middlewares=rate +# - traefik.http.middlewares.rate.ratelimit.extractorfunc=client.ip +# - traefik.http.middlewares.rate.ratelimit.rateset.Rate0.average=1 +# - traefik.http.middlewares.rate.ratelimit.rateset.Rate0.burst=2 +# - traefik.http.middlewares.rate.ratelimit.rateset.Rate0.period=10s +# - traefik.http.services.service3.loadbalancer.server.port=80 frontendWhitelist: image: containous/whoami labels: diff --git a/integration/tracing_test.go b/integration/tracing_test.go index 03e5e18b8..2d57b9e38 100644 --- a/integration/tracing_test.go +++ b/integration/tracing_test.go @@ -41,6 +41,8 @@ func (s *TracingSuite) startZipkin(c *check.C) { } func (s *TracingSuite) TestZipkinRateLimit(c *check.C) { + c.Skip("RateLimit is disable for now") + s.startZipkin(c) defer s.composeProject.Stop(c, "zipkin") file := s.adaptFile(c, "fixtures/tracing/simple-zipkin.toml", TracingTemplate{ @@ -155,6 +157,8 @@ func (s *TracingSuite) startJaeger(c *check.C) { } func (s *TracingSuite) TestJaegerRateLimit(c *check.C) { + c.Skip("RateLimit is disable for now") + s.startJaeger(c) defer s.composeProject.Stop(c, "jaeger") file := s.adaptFile(c, "fixtures/tracing/simple-jaeger.toml", TracingTemplate{ diff --git a/pkg/config/dynamic/middlewares.go b/pkg/config/dynamic/middlewares.go index 2c7482e48..b5124a822 100644 --- a/pkg/config/dynamic/middlewares.go +++ b/pkg/config/dynamic/middlewares.go @@ -15,16 +15,17 @@ import ( // Middleware holds the Middleware configuration. type Middleware struct { - AddPrefix *AddPrefix `json:"addPrefix,omitempty" toml:"addPrefix,omitempty" yaml:"addPrefix,omitempty"` - StripPrefix *StripPrefix `json:"stripPrefix,omitempty" toml:"stripPrefix,omitempty" yaml:"stripPrefix,omitempty"` - StripPrefixRegex *StripPrefixRegex `json:"stripPrefixRegex,omitempty" toml:"stripPrefixRegex,omitempty" yaml:"stripPrefixRegex,omitempty"` - ReplacePath *ReplacePath `json:"replacePath,omitempty" toml:"replacePath,omitempty" yaml:"replacePath,omitempty"` - ReplacePathRegex *ReplacePathRegex `json:"replacePathRegex,omitempty" toml:"replacePathRegex,omitempty" yaml:"replacePathRegex,omitempty"` - Chain *Chain `json:"chain,omitempty" toml:"chain,omitempty" yaml:"chain,omitempty"` - IPWhiteList *IPWhiteList `json:"ipWhiteList,omitempty" toml:"ipWhiteList,omitempty" yaml:"ipWhiteList,omitempty"` - Headers *Headers `json:"headers,omitempty" toml:"headers,omitempty" yaml:"headers,omitempty"` - Errors *ErrorPage `json:"errors,omitempty" toml:"errors,omitempty" yaml:"errors,omitempty"` - RateLimit *RateLimit `json:"rateLimit,omitempty" toml:"rateLimit,omitempty" yaml:"rateLimit,omitempty"` + AddPrefix *AddPrefix `json:"addPrefix,omitempty" toml:"addPrefix,omitempty" yaml:"addPrefix,omitempty"` + StripPrefix *StripPrefix `json:"stripPrefix,omitempty" toml:"stripPrefix,omitempty" yaml:"stripPrefix,omitempty"` + StripPrefixRegex *StripPrefixRegex `json:"stripPrefixRegex,omitempty" toml:"stripPrefixRegex,omitempty" yaml:"stripPrefixRegex,omitempty"` + ReplacePath *ReplacePath `json:"replacePath,omitempty" toml:"replacePath,omitempty" yaml:"replacePath,omitempty"` + ReplacePathRegex *ReplacePathRegex `json:"replacePathRegex,omitempty" toml:"replacePathRegex,omitempty" yaml:"replacePathRegex,omitempty"` + Chain *Chain `json:"chain,omitempty" toml:"chain,omitempty" yaml:"chain,omitempty"` + IPWhiteList *IPWhiteList `json:"ipWhiteList,omitempty" toml:"ipWhiteList,omitempty" yaml:"ipWhiteList,omitempty"` + Headers *Headers `json:"headers,omitempty" toml:"headers,omitempty" yaml:"headers,omitempty"` + Errors *ErrorPage `json:"errors,omitempty" toml:"errors,omitempty" yaml:"errors,omitempty"` + // TODO: disable temporarily + // RateLimit *RateLimit `json:"rateLimit,omitempty" toml:"rateLimit,omitempty" yaml:"rateLimit,omitempty"` RedirectRegex *RedirectRegex `json:"redirectRegex,omitempty" toml:"redirectRegex,omitempty" yaml:"redirectRegex,omitempty"` RedirectScheme *RedirectScheme `json:"redirectScheme,omitempty" toml:"redirectScheme,omitempty" yaml:"redirectScheme,omitempty"` BasicAuth *BasicAuth `json:"basicAuth,omitempty" toml:"basicAuth,omitempty" yaml:"basicAuth,omitempty"` diff --git a/pkg/config/dynamic/zz_generated.deepcopy.go b/pkg/config/dynamic/zz_generated.deepcopy.go index 9671e61db..416865453 100644 --- a/pkg/config/dynamic/zz_generated.deepcopy.go +++ b/pkg/config/dynamic/zz_generated.deepcopy.go @@ -628,11 +628,6 @@ func (in *Middleware) DeepCopyInto(out *Middleware) { *out = new(ErrorPage) (*in).DeepCopyInto(*out) } - if in.RateLimit != nil { - in, out := &in.RateLimit, &out.RateLimit - *out = new(RateLimit) - (*in).DeepCopyInto(*out) - } if in.RedirectRegex != nil { in, out := &in.RedirectRegex, &out.RedirectRegex *out = new(RedirectRegex) diff --git a/pkg/config/label/label_test.go b/pkg/config/label/label_test.go index 76550ad08..7c2a031c5 100644 --- a/pkg/config/label/label_test.go +++ b/pkg/config/label/label_test.go @@ -3,10 +3,8 @@ package label import ( "fmt" "testing" - "time" "github.com/containous/traefik/pkg/config/dynamic" - "github.com/containous/traefik/pkg/types" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" ) @@ -97,26 +95,27 @@ func TestDecodeConfiguration(t *testing.T) { "traefik.http.middlewares.Middleware11.passtlsclientcert.info.issuer.province": "true", "traefik.http.middlewares.Middleware11.passtlsclientcert.info.issuer.serialnumber": "true", "traefik.http.middlewares.Middleware11.passtlsclientcert.pem": "true", - "traefik.http.middlewares.Middleware12.ratelimit.extractorfunc": "foobar", - "traefik.http.middlewares.Middleware12.ratelimit.rateset.Rate0.average": "42", - "traefik.http.middlewares.Middleware12.ratelimit.rateset.Rate0.burst": "42", - "traefik.http.middlewares.Middleware12.ratelimit.rateset.Rate0.period": "42", - "traefik.http.middlewares.Middleware12.ratelimit.rateset.Rate1.average": "42", - "traefik.http.middlewares.Middleware12.ratelimit.rateset.Rate1.burst": "42", - "traefik.http.middlewares.Middleware12.ratelimit.rateset.Rate1.period": "42", - "traefik.http.middlewares.Middleware13.redirectregex.permanent": "true", - "traefik.http.middlewares.Middleware13.redirectregex.regex": "foobar", - "traefik.http.middlewares.Middleware13.redirectregex.replacement": "foobar", - "traefik.http.middlewares.Middleware13b.redirectscheme.scheme": "https", - "traefik.http.middlewares.Middleware13b.redirectscheme.port": "80", - "traefik.http.middlewares.Middleware13b.redirectscheme.permanent": "true", - "traefik.http.middlewares.Middleware14.replacepath.path": "foobar", - "traefik.http.middlewares.Middleware15.replacepathregex.regex": "foobar", - "traefik.http.middlewares.Middleware15.replacepathregex.replacement": "foobar", - "traefik.http.middlewares.Middleware16.retry.attempts": "42", - "traefik.http.middlewares.Middleware17.stripprefix.prefixes": "foobar, fiibar", - "traefik.http.middlewares.Middleware18.stripprefixregex.regex": "foobar, fiibar", - "traefik.http.middlewares.Middleware19.compress": "true", + // TODO: disable temporarily (rateLimit) + // "traefik.http.middlewares.Middleware12.ratelimit.extractorfunc": "foobar", + // "traefik.http.middlewares.Middleware12.ratelimit.rateset.Rate0.average": "42", + // "traefik.http.middlewares.Middleware12.ratelimit.rateset.Rate0.burst": "42", + // "traefik.http.middlewares.Middleware12.ratelimit.rateset.Rate0.period": "42", + // "traefik.http.middlewares.Middleware12.ratelimit.rateset.Rate1.average": "42", + // "traefik.http.middlewares.Middleware12.ratelimit.rateset.Rate1.burst": "42", + // "traefik.http.middlewares.Middleware12.ratelimit.rateset.Rate1.period": "42", + "traefik.http.middlewares.Middleware13.redirectregex.permanent": "true", + "traefik.http.middlewares.Middleware13.redirectregex.regex": "foobar", + "traefik.http.middlewares.Middleware13.redirectregex.replacement": "foobar", + "traefik.http.middlewares.Middleware13b.redirectscheme.scheme": "https", + "traefik.http.middlewares.Middleware13b.redirectscheme.port": "80", + "traefik.http.middlewares.Middleware13b.redirectscheme.permanent": "true", + "traefik.http.middlewares.Middleware14.replacepath.path": "foobar", + "traefik.http.middlewares.Middleware15.replacepathregex.regex": "foobar", + "traefik.http.middlewares.Middleware15.replacepathregex.replacement": "foobar", + "traefik.http.middlewares.Middleware16.retry.attempts": "42", + "traefik.http.middlewares.Middleware17.stripprefix.prefixes": "foobar, fiibar", + "traefik.http.middlewares.Middleware18.stripprefixregex.regex": "foobar, fiibar", + "traefik.http.middlewares.Middleware19.compress": "true", "traefik.http.routers.Router0.entrypoints": "foobar, fiibar", "traefik.http.routers.Router0.middlewares": "foobar, fiibar", @@ -306,23 +305,24 @@ func TestDecodeConfiguration(t *testing.T) { }, }, }, - "Middleware12": { - RateLimit: &dynamic.RateLimit{ - RateSet: map[string]*dynamic.Rate{ - "Rate0": { - Period: types.Duration(42 * time.Second), - Average: 42, - Burst: 42, - }, - "Rate1": { - Period: types.Duration(42 * time.Second), - Average: 42, - Burst: 42, - }, - }, - ExtractorFunc: "foobar", - }, - }, + // TODO: disable temporarily (rateLimit) + // "Middleware12": { + // RateLimit: &dynamic.RateLimit{ + // RateSet: map[string]*dynamic.Rate{ + // "Rate0": { + // Period: types.Duration(42 * time.Second), + // Average: 42, + // Burst: 42, + // }, + // "Rate1": { + // Period: types.Duration(42 * time.Second), + // Average: 42, + // Burst: 42, + // }, + // }, + // ExtractorFunc: "foobar", + // }, + // }, "Middleware13": { RedirectRegex: &dynamic.RedirectRegex{ Regex: "foobar", @@ -702,23 +702,24 @@ func TestEncodeConfiguration(t *testing.T) { }, }, }, - "Middleware12": { - RateLimit: &dynamic.RateLimit{ - RateSet: map[string]*dynamic.Rate{ - "Rate0": { - Period: types.Duration(42 * time.Nanosecond), - Average: 42, - Burst: 42, - }, - "Rate1": { - Period: types.Duration(42 * time.Nanosecond), - Average: 42, - Burst: 42, - }, - }, - ExtractorFunc: "foobar", - }, - }, + // TODO: disable temporarily (rateLimit) + // "Middleware12": { + // RateLimit: &dynamic.RateLimit{ + // RateSet: map[string]*dynamic.Rate{ + // "Rate0": { + // Period: types.Duration(42 * time.Nanosecond), + // Average: 42, + // Burst: 42, + // }, + // "Rate1": { + // Period: types.Duration(42 * time.Nanosecond), + // Average: 42, + // Burst: 42, + // }, + // }, + // ExtractorFunc: "foobar", + // }, + // }, "Middleware13": { RedirectRegex: &dynamic.RedirectRegex{ Regex: "foobar", @@ -1051,26 +1052,27 @@ func TestEncodeConfiguration(t *testing.T) { "traefik.HTTP.Middlewares.Middleware11.PassTLSClientCert.Info.Issuer.SerialNumber": "true", "traefik.HTTP.Middlewares.Middleware11.PassTLSClientCert.Info.Issuer.DomainComponent": "true", "traefik.HTTP.Middlewares.Middleware11.PassTLSClientCert.PEM": "true", - "traefik.HTTP.Middlewares.Middleware12.RateLimit.ExtractorFunc": "foobar", - "traefik.HTTP.Middlewares.Middleware12.RateLimit.RateSet.Rate0.Average": "42", - "traefik.HTTP.Middlewares.Middleware12.RateLimit.RateSet.Rate0.Burst": "42", - "traefik.HTTP.Middlewares.Middleware12.RateLimit.RateSet.Rate0.Period": "42", - "traefik.HTTP.Middlewares.Middleware12.RateLimit.RateSet.Rate1.Average": "42", - "traefik.HTTP.Middlewares.Middleware12.RateLimit.RateSet.Rate1.Burst": "42", - "traefik.HTTP.Middlewares.Middleware12.RateLimit.RateSet.Rate1.Period": "42", - "traefik.HTTP.Middlewares.Middleware13.RedirectRegex.Regex": "foobar", - "traefik.HTTP.Middlewares.Middleware13.RedirectRegex.Replacement": "foobar", - "traefik.HTTP.Middlewares.Middleware13.RedirectRegex.Permanent": "true", - "traefik.HTTP.Middlewares.Middleware13b.RedirectScheme.Scheme": "https", - "traefik.HTTP.Middlewares.Middleware13b.RedirectScheme.Port": "80", - "traefik.HTTP.Middlewares.Middleware13b.RedirectScheme.Permanent": "true", - "traefik.HTTP.Middlewares.Middleware14.ReplacePath.Path": "foobar", - "traefik.HTTP.Middlewares.Middleware15.ReplacePathRegex.Regex": "foobar", - "traefik.HTTP.Middlewares.Middleware15.ReplacePathRegex.Replacement": "foobar", - "traefik.HTTP.Middlewares.Middleware16.Retry.Attempts": "42", - "traefik.HTTP.Middlewares.Middleware17.StripPrefix.Prefixes": "foobar, fiibar", - "traefik.HTTP.Middlewares.Middleware18.StripPrefixRegex.Regex": "foobar, fiibar", - "traefik.HTTP.Middlewares.Middleware19.Compress": "true", + // TODO: disable temporarily (rateLimit) + // "traefik.HTTP.Middlewares.Middleware12.RateLimit.ExtractorFunc": "foobar", + // "traefik.HTTP.Middlewares.Middleware12.RateLimit.RateSet.Rate0.Average": "42", + // "traefik.HTTP.Middlewares.Middleware12.RateLimit.RateSet.Rate0.Burst": "42", + // "traefik.HTTP.Middlewares.Middleware12.RateLimit.RateSet.Rate0.Period": "42", + // "traefik.HTTP.Middlewares.Middleware12.RateLimit.RateSet.Rate1.Average": "42", + // "traefik.HTTP.Middlewares.Middleware12.RateLimit.RateSet.Rate1.Burst": "42", + // "traefik.HTTP.Middlewares.Middleware12.RateLimit.RateSet.Rate1.Period": "42", + "traefik.HTTP.Middlewares.Middleware13.RedirectRegex.Regex": "foobar", + "traefik.HTTP.Middlewares.Middleware13.RedirectRegex.Replacement": "foobar", + "traefik.HTTP.Middlewares.Middleware13.RedirectRegex.Permanent": "true", + "traefik.HTTP.Middlewares.Middleware13b.RedirectScheme.Scheme": "https", + "traefik.HTTP.Middlewares.Middleware13b.RedirectScheme.Port": "80", + "traefik.HTTP.Middlewares.Middleware13b.RedirectScheme.Permanent": "true", + "traefik.HTTP.Middlewares.Middleware14.ReplacePath.Path": "foobar", + "traefik.HTTP.Middlewares.Middleware15.ReplacePathRegex.Regex": "foobar", + "traefik.HTTP.Middlewares.Middleware15.ReplacePathRegex.Replacement": "foobar", + "traefik.HTTP.Middlewares.Middleware16.Retry.Attempts": "42", + "traefik.HTTP.Middlewares.Middleware17.StripPrefix.Prefixes": "foobar, fiibar", + "traefik.HTTP.Middlewares.Middleware18.StripPrefixRegex.Regex": "foobar, fiibar", + "traefik.HTTP.Middlewares.Middleware19.Compress": "true", "traefik.HTTP.Routers.Router0.EntryPoints": "foobar, fiibar", "traefik.HTTP.Routers.Router0.Middlewares": "foobar, fiibar", diff --git a/pkg/server/middleware/middlewares.go b/pkg/server/middleware/middlewares.go index 8333247bc..3d161e4f2 100644 --- a/pkg/server/middleware/middlewares.go +++ b/pkg/server/middleware/middlewares.go @@ -20,7 +20,6 @@ import ( "github.com/containous/traefik/pkg/middlewares/ipwhitelist" "github.com/containous/traefik/pkg/middlewares/maxconnection" "github.com/containous/traefik/pkg/middlewares/passtlsclientcert" - "github.com/containous/traefik/pkg/middlewares/ratelimiter" "github.com/containous/traefik/pkg/middlewares/redirect" "github.com/containous/traefik/pkg/middlewares/replacepath" "github.com/containous/traefik/pkg/middlewares/replacepathregex" @@ -232,15 +231,16 @@ func (b *Builder) buildConstructor(ctx context.Context, middlewareName string) ( } } + // TODO: disable temporarily (rateLimit) // RateLimit - if config.RateLimit != nil { - if middleware != nil { - return nil, badConf - } - middleware = func(next http.Handler) (http.Handler, error) { - return ratelimiter.New(ctx, next, *config.RateLimit, middlewareName) - } - } + // if config.RateLimit != nil { + // if middleware != nil { + // return nil, badConf + // } + // middleware = func(next http.Handler) (http.Handler, error) { + // return ratelimiter.New(ctx, next, *config.RateLimit, middlewareName) + // } + // } // RedirectRegex if config.RedirectRegex != nil {