mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-27 06:03:48 +03:00
reverseproxy: Wire up some http transport options in Caddyfile (#3843)
This commit is contained in:
parent
8d038ca515
commit
860cc6adfe
2 changed files with 63 additions and 4 deletions
|
@ -10,6 +10,14 @@ https://example.com {
|
||||||
buffer_requests
|
buffer_requests
|
||||||
|
|
||||||
transport http {
|
transport http {
|
||||||
|
read_buffer 10MB
|
||||||
|
write_buffer 20MB
|
||||||
|
max_response_header 30MB
|
||||||
|
dial_timeout 3s
|
||||||
|
dial_fallback_delay 5s
|
||||||
|
response_header_timeout 8s
|
||||||
|
expect_continue_timeout 9s
|
||||||
|
|
||||||
versions h2c 2
|
versions h2c 2
|
||||||
compression off
|
compression off
|
||||||
max_conns_per_host 5
|
max_conns_per_host 5
|
||||||
|
@ -68,13 +76,20 @@ https://example.com {
|
||||||
},
|
},
|
||||||
"transport": {
|
"transport": {
|
||||||
"compression": false,
|
"compression": false,
|
||||||
|
"dial_fallback_delay": 5000000000,
|
||||||
|
"dial_timeout": 3000000000,
|
||||||
|
"expect_continue_timeout": 9000000000,
|
||||||
"max_conns_per_host": 5,
|
"max_conns_per_host": 5,
|
||||||
"max_idle_conns_per_host": 2,
|
"max_idle_conns_per_host": 2,
|
||||||
|
"max_response_header_size": 30000000,
|
||||||
"protocol": "http",
|
"protocol": "http",
|
||||||
|
"read_buffer_size": 10000000,
|
||||||
|
"response_header_timeout": 8000000000,
|
||||||
"versions": [
|
"versions": [
|
||||||
"h2c",
|
"h2c",
|
||||||
"2"
|
"2"
|
||||||
]
|
],
|
||||||
|
"write_buffer_size": 20000000
|
||||||
},
|
},
|
||||||
"upstreams": [
|
"upstreams": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -586,9 +586,13 @@ func (h *Handler) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
|
||||||
// UnmarshalCaddyfile deserializes Caddyfile tokens into h.
|
// UnmarshalCaddyfile deserializes Caddyfile tokens into h.
|
||||||
//
|
//
|
||||||
// transport http {
|
// transport http {
|
||||||
// read_buffer <size>
|
// read_buffer <size>
|
||||||
// write_buffer <size>
|
// write_buffer <size>
|
||||||
// dial_timeout <duration>
|
// max_response_header <size>
|
||||||
|
// dial_timeout <duration>
|
||||||
|
// dial_fallback_delay <duration>
|
||||||
|
// response_header_timeout <duration>
|
||||||
|
// expect_continue_timeout <duration>
|
||||||
// tls
|
// tls
|
||||||
// tls_client_auth <automate_name> | <cert_file> <key_file>
|
// tls_client_auth <automate_name> | <cert_file> <key_file>
|
||||||
// tls_insecure_skip_verify
|
// tls_insecure_skip_verify
|
||||||
|
@ -627,6 +631,16 @@ func (h *HTTPTransport) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
|
||||||
}
|
}
|
||||||
h.WriteBufferSize = int(size)
|
h.WriteBufferSize = int(size)
|
||||||
|
|
||||||
|
case "max_response_header":
|
||||||
|
if !d.NextArg() {
|
||||||
|
return d.ArgErr()
|
||||||
|
}
|
||||||
|
size, err := humanize.ParseBytes(d.Val())
|
||||||
|
if err != nil {
|
||||||
|
return d.Errf("invalid max response header size '%s': %v", d.Val(), err)
|
||||||
|
}
|
||||||
|
h.MaxResponseHeaderSize = int64(size)
|
||||||
|
|
||||||
case "dial_timeout":
|
case "dial_timeout":
|
||||||
if !d.NextArg() {
|
if !d.NextArg() {
|
||||||
return d.ArgErr()
|
return d.ArgErr()
|
||||||
|
@ -637,6 +651,36 @@ func (h *HTTPTransport) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
|
||||||
}
|
}
|
||||||
h.DialTimeout = caddy.Duration(dur)
|
h.DialTimeout = caddy.Duration(dur)
|
||||||
|
|
||||||
|
case "dial_fallback_delay":
|
||||||
|
if !d.NextArg() {
|
||||||
|
return d.ArgErr()
|
||||||
|
}
|
||||||
|
dur, err := caddy.ParseDuration(d.Val())
|
||||||
|
if err != nil {
|
||||||
|
return d.Errf("bad fallback delay value '%s': %v", d.Val(), err)
|
||||||
|
}
|
||||||
|
h.FallbackDelay = caddy.Duration(dur)
|
||||||
|
|
||||||
|
case "response_header_timeout":
|
||||||
|
if !d.NextArg() {
|
||||||
|
return d.ArgErr()
|
||||||
|
}
|
||||||
|
dur, err := caddy.ParseDuration(d.Val())
|
||||||
|
if err != nil {
|
||||||
|
return d.Errf("bad timeout value '%s': %v", d.Val(), err)
|
||||||
|
}
|
||||||
|
h.ResponseHeaderTimeout = caddy.Duration(dur)
|
||||||
|
|
||||||
|
case "expect_continue_timeout":
|
||||||
|
if !d.NextArg() {
|
||||||
|
return d.ArgErr()
|
||||||
|
}
|
||||||
|
dur, err := caddy.ParseDuration(d.Val())
|
||||||
|
if err != nil {
|
||||||
|
return d.Errf("bad timeout value '%s': %v", d.Val(), err)
|
||||||
|
}
|
||||||
|
h.ExpectContinueTimeout = caddy.Duration(dur)
|
||||||
|
|
||||||
case "tls_client_auth":
|
case "tls_client_auth":
|
||||||
if h.TLS == nil {
|
if h.TLS == nil {
|
||||||
h.TLS = new(TLSConfig)
|
h.TLS = new(TLSConfig)
|
||||||
|
|
Loading…
Reference in a new issue