Tw
d0455c7b9c
add more descriptive errors
...
Signed-off-by: Tw <tw19881113@gmail.com>
2016-10-11 10:34:51 +08:00
Tw
e5d33e73f3
header: implement http.Hijacker for responseWriterWrapper
...
fix issue #1173
Signed-off-by: Tw <tw19881113@gmail.com>
2016-10-11 08:53:47 +08:00
Tw
cc638c7faa
proxy: handle 'without' option in encoded form of URL path
...
fix issue #1154
Signed-off-by: Tw <tw19881113@gmail.com>
2016-10-02 19:32:14 +00:00
Matt Holt
8944332e13
Merge pull request #1143 from mholt/1136-fix
...
Fix #1136 - IP hash policy no longer changes host pool
2016-09-28 08:07:58 -06:00
Kris Hamoud
be1c57acfe
1136 fix
...
logic change
2016-09-28 04:09:46 -07:00
Matt Holt
871d11af00
Merge pull request #1135 from mholt/proxyerrs
...
proxy: Improve failover logic and retries
2016-09-27 17:53:44 -06:00
Matthew Holt
6397a85e50
proxy: Only wait 250ms between backend tries
2016-09-27 17:49:00 -06:00
Matthew Holt
617012c3fb
Use time.Since() for readability
2016-09-24 21:27:57 -06:00
Matt Holt
d01bcd591c
Merge pull request #1112 from tw4452852/proxy_header
...
proxy: don't append predefined headers
2016-09-24 21:02:19 -06:00
Tw
c9b022b5e0
proxy: don't append some predefined headers
...
fix issue #1086
Signed-off-by: Tw <tw19881113@gmail.com>
2016-09-25 09:24:27 +00:00
Matthew Holt
a661007a55
proxy: Fix retry logic for when no hosts are available
2016-09-24 16:30:40 -06:00
Matthew Holt
0c0142c8cc
Delete tryDuration, now unused
2016-09-24 16:05:33 -06:00
Matthew Holt
37f05e450f
proxy: Add try_duration and try_interval; by default don't retry
2016-09-24 16:03:22 -06:00
Matthew Holt
9b9a77a160
proxy: Improved error reporting
...
We now report the actual error message rather than a generic one
2016-09-24 14:22:13 -06:00
Tw
4670d13c8c
proxy: fix checking error in TestDownstreamHeadersUpdate and TestUpstreamHeadersUpdate
...
Signed-off-by: Tw <tw19881113@gmail.com>
2016-09-24 19:28:42 +00:00
Matthew Holt
76d9d695be
Remove use of proxy_header in test
2016-09-24 12:27:16 -06:00
Issac Trotts
1991083322
Fix tests to not make long unix domain socketpaths
...
Some tests were running into this issue:
https://github.com/golang/go/issues/6895
Putting the sockets into temp dirs fixes the problem.
2016-08-29 18:09:46 -07:00
Michael Grosser
3dc98c8ce3
Keep quic protocol headers only between one hop
...
Removing quic protocol headers from being persisted during proxy requests.
Not removing them could lead to the client attempting to connect to the wrong port.
This makes the quic headers consistent with other protocol headers.
2016-08-23 22:05:56 +00:00
Nimi Wariboko Jr
2ef8905966
Proxy: Instead of setting DisableKeepAlives, set MaxIdleConnsPerHost to -1 to prevent net/http from pooling the connections. DisableKeepAlives causes net/http to send a Connection: Closed header which is bad. Fixes #1056
2016-08-22 18:00:37 -07:00
Matthew Holt
ce8b1dfe94
Warn upon use of proxy_header
2016-08-08 13:48:13 -06:00
Matthew Holt
2019eec5a5
Fix lint warnings; group methods for same type together
2016-08-06 14:46:52 -06:00
Nimi Wariboko Jr
8898066455
Merge branch 'master' into proxy/single-webconn
2016-08-05 16:57:54 -07:00
Nimi Wariboko Jr
824ec6cb95
Merge branch 'master' into proxy/keepalive-directive
2016-08-05 16:20:37 -07:00
Nimi Wariboko Jr
5b5e365295
Instead of treating 0 is a default value, use http.DefaultMaxIdleConnsPerHost
2016-08-05 15:41:32 -07:00
Tw
94c63e42d6
proxy: add Host header checking
...
fix issue #993
Signed-off-by: Tw <tw19881113@gmail.com>
2016-08-04 13:07:20 +08:00
Nimi Wariboko Jr
6e9439d22e
Proxy: Fix data race in test.
2016-08-02 12:39:15 -07:00
Nimi Wariboko Jr
f4cdf53761
Proxy: Fix transport defn; cleanup connection.
2016-08-02 12:31:17 -07:00
Nimi Wariboko Jr
d534a2139f
Proxy: When connecting to websocket backend, reuse the connection isntead of starting a new one.
2016-08-01 19:11:31 -07:00
Eric Drechsel
c4e65df262
Proxy: Add a failing test which replicates #763
...
2 websocket connections are made instead of one
2016-08-01 19:09:02 -07:00
Kris Hamoud
88d3dcae42
added ip_hash load balancing
...
updated tests
fixed comment format
fixed formatting, minor logic fix
added newline to EOF
updated logic, fixed tests
added comment
updated formatting
updated test output
fixed typo
2016-08-01 18:50:53 -07:00
Nimi Wariboko Jr
db4cd8ee2d
Proxy: Add keepalive directive to proxy to set MaxIdleConnsPerHost on transport. Fixes #938
2016-08-01 15:54:07 -07:00
Matthew Holt
c8daaba4be
Update link to SA 1.1.1 (and other minor tweaks)
2016-07-28 11:11:14 -06:00
Viacheslav Chimishuk
62e8c4b76b
Use authentification credentials from proxy's configuration as a default. ( #951 )
2016-07-22 11:33:50 -06:00
Matthew Holt
6490ff6224
Adjust proxy headers properly ( fixes #916 )
2016-07-21 18:18:01 -06:00
Matthew Holt
57710e8b0d
Revert "Merge pull request #931 from pedronasser/master"
...
This reverts commit 9ea0591951
, reversing
changes made to 2125ae5f99
.
2016-07-21 13:31:43 -06:00
Tw
ca3d23bc70
proxy: fix hyphen issue when parsing target
...
fix issue #948
Signed-off-by: Tw <tw19881113@gmail.com>
2016-07-21 13:56:35 +08:00
Tw
beae16f07c
Proxy performance ( #946 )
...
* proxy: add benchmark
Signed-off-by: Tw <tw19881113@gmail.com>
* replacer: prepare lazily
update issue#939
benchmark old ns/op new ns/op delta
BenchmarkProxy-4 83865 72544 -13.50%
Signed-off-by: Tw <tw19881113@gmail.com>
* proxy: use buffer pool to avoid temporary allocation
Signed-off-by: Tw <tw19881113@gmail.com>
2016-07-20 19:06:14 -06:00
Matthew Holt
aede4ccbce
Small changes; mostly comments
2016-07-18 14:32:28 -06:00
Pedro Nasser
6bb1e0c674
improve transparent mode
2016-07-14 18:16:58 -03:00
Pedro Nasser
b58872925a
fixed transparent host and added test case
2016-07-14 15:43:06 -03:00
Pedro Nasser
8d7136fc06
fix transparent host header #916
2016-07-14 15:30:00 -03:00
Matthew Holt
62622eb853
proxy: 'transparent' also sets X-Forwarded-For ( closes #924 )
2016-07-09 17:33:40 -06:00
Maxime
e5bf8cab24
Test that the host header forwarding on the proxy middleware
2016-06-29 16:52:31 -07:00
Matthew Holt
a1bc94e409
Working on a fix for proxy related to setting Host header (cf. #874 )
...
Also see
https://forum.caddyserver.com/t/caddy-0-9-beta-version-available-updated-beta-2/146/29?u=matt
which has another account of strange proxy behavior; I think this
resolves that.
2016-06-28 18:40:07 -06:00
Matthew Holt
80dd95a495
Change outreq.Host instead of r.Host (possibly related to #874 )
...
Also a few little formatting changes and comments.
2016-06-28 18:19:35 -06:00
Viacheslav Biriukov
345ece3850
add multi proxy supprot based on urls
2016-06-28 16:35:35 -06:00
Matthew Holt
a798e0c951
Refactor how caddy.Context is stored and used
...
- Server types no longer need to store their own contexts; they are
stored on the caddy.Instance, which means each context will be
properly GC'ed when the instance is stopped. Server types should use
type assertions to convert from caddy.Context to their concrete
context type when they need to use it.
- Pass the entire context into httpserver.GetConfig instead of only the
Key field.
- caddy.NewTestController now requires a server type string so it can
create a controller with the proper concrete context associated with
that server type.
Tests still need more attention so that we can test the proper creation
of startup functions, etc.
2016-06-20 11:59:23 -06:00
David Dyke
07b7c99965
Add timeout to health_check ( #887 )
...
* Add timeout to http get on health_check
* Add new test and up the timeout
* Tests for change to default timeout
* Only call http client once and make options more inline with current caddy directives
2016-06-20 09:49:21 -06:00
Andrew Hamon
a50462974c
Refactor and clean up policy code
...
This commit shouldn't change any behavior. It is simply a cleanup of
the different proxy policies. It also adds some comments explaining the
sampling method used, since on first inspection it might not appear to
be a uniformly random selection.
2016-06-18 15:41:18 -05:00
Andrew Hamon
fee4890e94
Balance round robin evenly when some hosts are down ( #880 )
...
* Balance round robin evenly when some hosts are down
Before, when load balancing across multiple hosts, if a host went down
then the next host in line would be sent a double share of requests.
This is because the round robin counter was only incremented once per
request, regardless of the health of the selection. If current
selection was unhealthy then the policy would advance to the next host,
but this would not be reflected in the policy counter. To fix this, the
counter is now incremented for every attempted host.
This commit adds a test case that identifies the issue, and a fix.
* Make robin counter private
* Use a mutex to sync round robin selection
2016-06-14 15:43:06 -06:00