as go loads the request to memory, it is necessary to prevent huge urls to hit is hard. Checking RawQuery len to the same maxSize in practice may allow double-sized requests max, but will do for now
* Add 'X-Forwarded-URL' to request header
'X-Forwarded-URL' has been added to the request header in the proxy core to improve redirection handling.
* lint: address unused param warn, supress for tests
* Initial implementation of keep-host argument
* Add keep-host parsing to the consulcatalog provider
* Update docs
* update from the current master
---------
by @ffix
add new remote param to docker and file providers
lint: http nil body
add support of remote ips to consul provider
local implementation of onlyfrom middleware
lint: missing comment
make proxy tests more readable
preffer public IP if any forwwarded
Consider proxy configuration `*,/test/(.*),https://dest/$1`.
When reproxy accepts a request with URL encoded path, i.e.
'/test/a%205%25%20b/' which the encoded form of '/test/a 5% b',
it is using request.URL.Path which is already URL decoded by Golang.
This causes an error in proxy.go while it is trying to validate the
destination with `url.Parse(match.Destination)` as, strictly speaking,
destination URL is not a valid URL anymore, it is `https://target-dest/a 5% b`.
With this fix, the original escaped URL stays as is, correctly passes
the validation and then it is up to destination server to URL decode and
correctly handle the URL.
In some cases proxy should sanitize incoming headers. --drop-header and $DROP_HEADERS set list of headers (keys) and those headers removed from the request.
* wip
* resolve merge artifacts
* full coverage for conductor
* wire plugin conductor to main and proxy
* wip, with separate match handler
* split matching logic with another handler, add initial docs
* move parts of proxy to handlers, add tests
* add headers in to be sent to proxied url
* merged from master
* add example with docker compose
* supress excesive debug reporting 0-9 disabled in docker
* add plugin tests
* randomize test port
* lint: minor warns
* lint: err shadow
* discovery support for multiple matches
* switch proxy matcher usage, add random selection
* fix multi-match logic
* pass match picker func
* simplify rand picker
* update health params and docs
* fix early termination on discovery multi-match
* add grouping of sorted matches in sorted result
* add mention of live check to readme