mirror of
				https://github.com/caddyserver/caddy.git
				synced 2025-11-04 10:12:29 +08:00 
			
		
		
		
	httpcaddyfile: Add compression to http transport config (#3624)
				
					
				
			* httpcaddyfile: Add `compression` to http transport config * Add caddyfile adapt test for typical h2c setup
This commit is contained in:
		
							
								
								
									
										96
									
								
								caddytest/integration/caddyfile_adapt/reverse_proxy_h2c.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								caddytest/integration/caddyfile_adapt/reverse_proxy_h2c.txt
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,96 @@
 | 
			
		||||
 | 
			
		||||
https://example.com {
 | 
			
		||||
	reverse_proxy /path http://localhost:54321 {
 | 
			
		||||
		header_up Host {host}
 | 
			
		||||
		header_up X-Real-IP {remote}
 | 
			
		||||
		header_up X-Forwarded-For {remote}
 | 
			
		||||
		header_up X-Forwarded-Port {server_port}
 | 
			
		||||
		header_up X-Forwarded-Proto "http"
 | 
			
		||||
		transport http {
 | 
			
		||||
			versions h2c 2
 | 
			
		||||
			compression off
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
----------
 | 
			
		||||
{
 | 
			
		||||
	"apps": {
 | 
			
		||||
		"http": {
 | 
			
		||||
			"servers": {
 | 
			
		||||
				"srv0": {
 | 
			
		||||
					"listen": [
 | 
			
		||||
						":443"
 | 
			
		||||
					],
 | 
			
		||||
					"routes": [
 | 
			
		||||
						{
 | 
			
		||||
							"match": [
 | 
			
		||||
								{
 | 
			
		||||
									"host": [
 | 
			
		||||
										"example.com"
 | 
			
		||||
									]
 | 
			
		||||
								}
 | 
			
		||||
							],
 | 
			
		||||
							"handle": [
 | 
			
		||||
								{
 | 
			
		||||
									"handler": "subroute",
 | 
			
		||||
									"routes": [
 | 
			
		||||
										{
 | 
			
		||||
											"handle": [
 | 
			
		||||
												{
 | 
			
		||||
													"handler": "reverse_proxy",
 | 
			
		||||
													"headers": {
 | 
			
		||||
														"request": {
 | 
			
		||||
															"set": {
 | 
			
		||||
																"Host": [
 | 
			
		||||
																	"{http.request.host}"
 | 
			
		||||
																],
 | 
			
		||||
																"X-Forwarded-For": [
 | 
			
		||||
																	"{http.request.remote}"
 | 
			
		||||
																],
 | 
			
		||||
																"X-Forwarded-Port": [
 | 
			
		||||
																	"{server_port}"
 | 
			
		||||
																],
 | 
			
		||||
																"X-Forwarded-Proto": [
 | 
			
		||||
																	"http"
 | 
			
		||||
																],
 | 
			
		||||
																"X-Real-Ip": [
 | 
			
		||||
																	"{http.request.remote}"
 | 
			
		||||
																]
 | 
			
		||||
															}
 | 
			
		||||
														}
 | 
			
		||||
													},
 | 
			
		||||
													"transport": {
 | 
			
		||||
														"compression": false,
 | 
			
		||||
														"protocol": "http",
 | 
			
		||||
														"versions": [
 | 
			
		||||
															"h2c",
 | 
			
		||||
															"2"
 | 
			
		||||
														]
 | 
			
		||||
													},
 | 
			
		||||
													"upstreams": [
 | 
			
		||||
														{
 | 
			
		||||
															"dial": "localhost:54321"
 | 
			
		||||
														}
 | 
			
		||||
													]
 | 
			
		||||
												}
 | 
			
		||||
											],
 | 
			
		||||
											"match": [
 | 
			
		||||
												{
 | 
			
		||||
													"path": [
 | 
			
		||||
														"/path"
 | 
			
		||||
													]
 | 
			
		||||
												}
 | 
			
		||||
											]
 | 
			
		||||
										}
 | 
			
		||||
									]
 | 
			
		||||
								}
 | 
			
		||||
							],
 | 
			
		||||
							"terminal": true
 | 
			
		||||
						}
 | 
			
		||||
					]
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
@ -719,6 +719,14 @@ func (h *HTTPTransport) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
 | 
			
		||||
					return d.ArgErr()
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
			case "compression":
 | 
			
		||||
				if d.NextArg() {
 | 
			
		||||
					if d.Val() == "off" {
 | 
			
		||||
						var disable bool
 | 
			
		||||
						h.Compression = &disable
 | 
			
		||||
					}
 | 
			
		||||
				}
 | 
			
		||||
 | 
			
		||||
			default:
 | 
			
		||||
				return d.Errf("unrecognized subdirective %s", d.Val())
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user