-
-
Notifications
You must be signed in to change notification settings - Fork 4.2k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
headers: Support default header values in Caddyfile with '?' (#3807)
* implement default values for header directive closes #3804 * remove `set_default` header op and rely on "require" handler instead This has the following advantages over the previous attempt: - It does not introduce a new operation for headers, but rather nicely extends over an existing feature in the header handler. - It removes the need to specify the header as "deferred" because it is already implicitely deferred by the use of the require handler. This should be less confusing to the user. * add integration test for header directive in caddyfile * bubble up errors when parsing caddyfile header directive * don't export unnecessarily and don't canonicalize headers unnecessarily * fix response headers not passed in blocks * caddyfile: fix clash when using default header in block Each header is now set in a separate handler so that it doesn't clash with other headers set/added/deleted in the same block. * caddyhttp: New idle_timeout default of 5m * reverseproxy: fix random hangs on http/2 requests with server push (#3875) see golang/go#42534 * Refactor and cleanup with improvements * More specific link Co-authored-by: Matthew Holt <mholt@users.noreply.github.com> Co-authored-by: Денис Телюх <telyukh.denis@gmail.com>
- Loading branch information
1 parent
12cc69a
commit b0d5c2c
Showing
6 changed files
with
466 additions
and
71 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
:80 { | ||
header Denis "Ritchie" | ||
header +Edsger "Dijkstra" | ||
header ?John "von Neumann" | ||
header -Wolfram | ||
header { | ||
Grace: "Hopper" # some users habitually suffix field names with a colon | ||
+Ray "Solomonoff" | ||
?Tim "Berners-Lee" | ||
defer | ||
} | ||
} | ||
---------- | ||
{ | ||
"apps": { | ||
"http": { | ||
"servers": { | ||
"srv0": { | ||
"listen": [ | ||
":80" | ||
], | ||
"routes": [ | ||
{ | ||
"handle": [ | ||
{ | ||
"handler": "headers", | ||
"response": { | ||
"set": { | ||
"Denis": [ | ||
"Ritchie" | ||
] | ||
} | ||
} | ||
}, | ||
{ | ||
"handler": "headers", | ||
"response": { | ||
"add": { | ||
"Edsger": [ | ||
"Dijkstra" | ||
] | ||
} | ||
} | ||
}, | ||
{ | ||
"handler": "headers", | ||
"response": { | ||
"require": { | ||
"headers": { | ||
"John": null | ||
} | ||
}, | ||
"set": { | ||
"John": [ | ||
"von Neumann" | ||
] | ||
} | ||
} | ||
}, | ||
{ | ||
"handler": "headers", | ||
"response": { | ||
"deferred": true, | ||
"delete": [ | ||
"Wolfram" | ||
] | ||
} | ||
}, | ||
{ | ||
"handler": "headers", | ||
"response": { | ||
"add": { | ||
"Ray": [ | ||
"Solomonoff" | ||
] | ||
}, | ||
"deferred": true, | ||
"set": { | ||
"Grace": [ | ||
"Hopper" | ||
] | ||
} | ||
} | ||
}, | ||
{ | ||
"handler": "headers", | ||
"response": { | ||
"require": { | ||
"headers": { | ||
"Tim": null | ||
} | ||
}, | ||
"set": { | ||
"Tim": [ | ||
"Berners-Lee" | ||
] | ||
} | ||
} | ||
} | ||
] | ||
} | ||
] | ||
} | ||
} | ||
} | ||
} | ||
} |
Oops, something went wrong.