Browse Source
			
			
			
			
				
		* 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 https://github.com/golang/go/issues/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>master
							committed by
							
								 GitHub
								GitHub
							
						
					
				
				 6 changed files with 466 additions and 71 deletions
			
			
		| @ -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" | |||
| 											] | |||
| 										} | |||
| 									} | |||
| 								} | |||
| 							] | |||
| 						} | |||
| 					] | |||
| 				} | |||
| 			} | |||
| 		} | |||
| 	} | |||
| } | |||
					Loading…
					
					
				
		Reference in new issue