func getFrontendSettings(c *cli.Context) (engine.HTTPFrontendSettings, error) { s := engine.HTTPFrontendSettings{} s.Limits.MaxMemBodyBytes = int64(c.Int("maxMemBodyKB") * 1024) s.Limits.MaxBodyBytes = int64(c.Int("maxBodyKB") * 1024) s.FailoverPredicate = c.String("failoverPredicate") s.Hostname = c.String("forwardHost") s.TrustForwardHeader = c.Bool("trustForwardHeader") return s, nil }
// FromCli constructs the middleware from the command line func FromCli(c *cli.Context) (plugin.Middleware, error) { opts := secure.Options{ SSLRedirect: true, SSLProxyHeaders: map[string]string{"X-Forwarded-Proto": "https"}, STSSeconds: int64(c.Int("sts-seconds")), STSPreload: c.Bool("sts-preload"), FrameDeny: c.Bool("frame-deny"), ContentTypeNosniff: c.Bool("no-sniff"), BrowserXssFilter: c.Bool("xss-filter"), ContentSecurityPolicy: c.String("content-security-policy"), } return New(opts) }
func getBackendSettings(c *cli.Context) (engine.HTTPBackendSettings, error) { s := engine.HTTPBackendSettings{} s.Timeouts.Read = c.Duration("readTimeout").String() s.Timeouts.Dial = c.Duration("dialTimeout").String() s.Timeouts.TLSHandshake = c.Duration("handshakeTimeout").String() s.KeepAlive.Period = c.Duration("keepAlivePeriod").String() s.KeepAlive.MaxIdleConnsPerHost = c.Int("maxIdleConns") tlsSettings, err := getTLSSettings(c) if err != nil { return s, err } s.TLS = tlsSettings return s, nil }
func getTLSSettings(c *cli.Context) (*engine.TLSSettings, error) { s := &engine.TLSSettings{ InsecureSkipVerify: c.Bool("tlsSkipVerify"), PreferServerCipherSuites: c.Bool("tlsPreferServerCS"), SessionTicketsDisabled: c.Bool("tlsSessionTicketsOff"), MinVersion: c.String("tlsMinV"), MaxVersion: c.String("tlsMaxV"), CipherSuites: c.StringSlice("tlsCS"), } s.SessionCache.Type = c.String("tlsSessionCache") if s.SessionCache.Type == engine.LRUCacheType { s.SessionCache.Settings = &engine.LRUSessionCacheSettings{ Capacity: c.Int("tlsSessionCacheCapacity"), } } if _, err := engine.NewTLSConfig(s); err != nil { return nil, err } return s, nil }
func getOptions(c *cli.Context) (backend.LocationOptions, error) { o := backend.LocationOptions{} o.Timeouts.Read = c.Duration("readTimeout").String() o.Timeouts.Dial = c.Duration("dialTimeout").String() o.Timeouts.TlsHandshake = c.Duration("handshakeTimeout").String() o.KeepAlive.Period = c.Duration("keepAlivePeriod").String() o.KeepAlive.MaxIdleConnsPerHost = c.Int("maxIdleConns") o.Limits.MaxMemBodyBytes = int64(c.Int("maxMemBodyKB") * 1024) o.Limits.MaxBodyBytes = int64(c.Int("maxBodyKB") * 1024) o.FailoverPredicate = c.String("failoverPredicate") o.Hostname = c.String("forwardHost") o.TrustForwardHeader = c.Bool("trustForwardHeader") return o, nil }
// Constructs the middleware from the command line func FromCli(c *cli.Context) (plugin.Middleware, error) { return NewRateLimit(c.Int("requests"), c.String("var"), int64(c.Int("burst")), c.Int("period")) }
func (cmd *Command) topAction(c *cli.Context) { cmd.overviewAction(c.String("backend"), c.Int("refresh"), c.Int("limit")) }
// Constructs the middleware from the command line func FromCli(c *cli.Context) (plugin.Middleware, error) { return NewConnLimit(int64(c.Int("connections")), c.String("var")) }