Browse Source
Guh, this is complicated. Fixes #4640 This also follows up on #4398 (reverting it) which made a change that technically worked, but was incorrect. It changed the condition in `hostsFromKeysNotHTTP` from `&&` to `||`, but then the function no longer did what its name said it would do, and it would return hosts even if they were marked with `http://`, if they used a non-HTTP port. That wasn't the intent of it. The test added in there was kept though, because it is a valid usecase. The actual fix is to check _earlier_ whether all the addresses explicitly have `http://`, and if so we can short circuit and skip considering the rest.master
Francis Lavoie
3 years ago
committed by
GitHub
4 changed files with 75 additions and 2 deletions
@ -0,0 +1,56 @@ |
|||||
|
# example from issue #4640 |
||||
|
http://foo:8447, http://127.0.0.1:8447 { |
||||
|
reverse_proxy 127.0.0.1:8080 |
||||
|
} |
||||
|
---------- |
||||
|
{ |
||||
|
"apps": { |
||||
|
"http": { |
||||
|
"servers": { |
||||
|
"srv0": { |
||||
|
"listen": [ |
||||
|
":8447" |
||||
|
], |
||||
|
"routes": [ |
||||
|
{ |
||||
|
"match": [ |
||||
|
{ |
||||
|
"host": [ |
||||
|
"foo", |
||||
|
"127.0.0.1" |
||||
|
] |
||||
|
} |
||||
|
], |
||||
|
"handle": [ |
||||
|
{ |
||||
|
"handler": "subroute", |
||||
|
"routes": [ |
||||
|
{ |
||||
|
"handle": [ |
||||
|
{ |
||||
|
"handler": "reverse_proxy", |
||||
|
"upstreams": [ |
||||
|
{ |
||||
|
"dial": "127.0.0.1:8080" |
||||
|
} |
||||
|
] |
||||
|
} |
||||
|
] |
||||
|
} |
||||
|
] |
||||
|
} |
||||
|
], |
||||
|
"terminal": true |
||||
|
} |
||||
|
], |
||||
|
"automatic_https": { |
||||
|
"skip": [ |
||||
|
"foo", |
||||
|
"127.0.0.1" |
||||
|
] |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
Loading…
Reference in new issue