66e571e687
reverseproxy: Add mention of which half a copyBuffer err comes from ( #5472 )
...
Co-authored-by: Matt Holt <mholt@users.noreply.github.com >
2023-03-31 15:46:29 -04:00
2b3046de36
caddyhttp: Log request body bytes read ( #5461 )
2023-03-27 22:40:15 +00:00
1aef807c71
log: Make sink logs encodable ( #5441 )
...
* log: make `sink` encodable
* deduplicate logger fields
* extract common fields into `BaseLog` and embed it into `SinkLog`
* amend godoc on `BaseLog` and `SinkLog`
* minor style change
---------
Co-authored-by: Francis Lavoie <lavofr@gmail.com >
2023-03-27 21:41:24 +00:00
e16a886814
caddytls: Eval replacer on automation policy subjects ( #5459 )
...
Also renamed the field to SubjectsRaw, which can be considered a breaking change but I don't expect this to affect much.
2023-03-27 21:16:22 +00:00
dd86171d67
headers: Support deleting all headers as first op ( #5464 )
...
* Delete all existing fields when fieldName is `*`
* Rearrange deletion before addition in headers
* Revert "Rearrange deletion before addition in headers"
This reverts commit 1b50eeeccc92ccd660c7896d8283c7d9e5d1fcb0.
* Treat deleting all headers as a special case
* Apply suggestions from code review
Co-authored-by: Matt Holt <mholt@users.noreply.github.com >
---------
Co-authored-by: Matt Holt <mholt@users.noreply.github.com >
2023-03-27 21:05:18 +00:00
10b265d252
reverseproxy: Header up/down support for CLI command ( #5460 )
2023-03-27 20:35:31 +00:00
05e9974570
caddyhttp: Determine real client IP if trusted proxies configured ( #5104 )
...
* caddyhttp: Determine real client IP if trusted proxies configured
* Support customizing client IP header
* Implement client_ip matcher, deprecate remote_ip's forwarded option
2023-03-27 20:22:59 +00:00
2182270a2c
reverseproxy: Reset Content-Length to prevent FastCGI from hanging ( #5435 )
...
Fixes: https://github.com/caddyserver/caddy/issues/5420
2023-03-16 11:42:16 -06:00
6cc3cbbc69
fileserver: New file browse template ( #5427 )
...
* fileserver: New file browse template
* Redo extension/icon logic; minor color tweaks
* Fine-tune image display
2023-03-10 18:19:31 +00:00
b420561737
tracing: Support autoprop from OTEL_PROPAGATORS ( #5147 )
...
Co-authored-by: Matt Holt <mholt@users.noreply.github.com >
2023-03-09 09:02:35 -07:00
b3f0cea2c3
encode: flush status code when hijacked. ( #5419 )
2023-03-06 09:13:48 -07:00
94d41a9d86
fileserver: Remove trailing slash on fs filenames ( #5417 )
2023-03-03 14:45:17 -07:00
99d47050e9
core: Eliminate unnecessary shutdown delay on Unix ( #5413 )
...
* core: Eliminate unnecessary shutdown delay on Unix
Fix #5393 , alternate to #5405
* Comments, cleanup, adjust logs
* Fix build constraint
2023-03-03 04:00:18 +00:00
85375861f6
caddyhttp: Fix vars_regexp
matcher with placeholders ( #5408 )
...
Changed to match the `vars` matcher's logic for handling placeholders
2023-03-02 09:01:54 -07:00
941eae5f61
reverseproxy: allow specifying ip version for dynamic a
upstream ( #5401 )
...
Co-authored-by: Francis Lavoie <lavofr@gmail.com >
2023-02-27 17:23:09 +00:00
960150bb03
caddyfile: Implement heredoc support ( #5385 )
2023-02-26 00:34:27 +00:00
9e6919550b
cmd: Expand cobra support, add short flags ( #5379 )
...
* cmd: Expand cobra support
* Convert commands to cobra, add short flags
* Fix version command typo
Co-authored-by: Emily Lange <git@indeednotjames.com >
* Apply suggestions from code review
Co-authored-by: Matt Holt <mholt@users.noreply.github.com >
---------
Co-authored-by: Emily Lange <git@indeednotjames.com >
Co-authored-by: Matt Holt <mholt@users.noreply.github.com >
2023-02-24 16:09:12 -07:00
e3909cc385
reverseproxy: refactor HTTP transport layer ( #5369 )
...
Co-authored-by: Francis Lavoie <lavofr@gmail.com >
Co-authored-by: Weidi Deng <weidi_deng@icloud.com >
2023-02-24 19:54:04 +00:00
5ded580444
cmd: Adjust documentation for commands ( #5377 )
2023-02-16 09:14:07 -07:00
4b119a475f
reverseproxy: Don't buffer chunked requests ( fix #5366 ) ( #5367 )
...
* reverseproxy: Don't buffer chunked requests (fix #5366 )
Mostly reverts 845bc4d50b437995d574819850206e4b3db4040d (#5289 )
Adds warning for unsafe config.
Deprecates unsafe properties in favor of simpler, safer designed ones.
* Update modules/caddyhttp/reverseproxy/caddyfile.go
Co-authored-by: Y.Horie <u5.horie@gmail.com >
* Update modules/caddyhttp/reverseproxy/reverseproxy.go
Co-authored-by: Y.Horie <u5.horie@gmail.com >
* Update modules/caddyhttp/reverseproxy/reverseproxy.go
Co-authored-by: Y.Horie <u5.horie@gmail.com >
* Remove unused code
---------
Co-authored-by: Y.Horie <u5.horie@gmail.com >
2023-02-11 17:25:29 -07:00
90798f3eea
go.mod: Upgrade various dependencies ( #5362 )
...
* chore: Upgrade various dependencies
* Support CEL file matcher with no args
* Document `http.request.orig_uri.path.*`, reorder placeholders in docs
---------
Co-authored-by: Matt Holt <mholt@users.noreply.github.com >
2023-02-08 17:49:17 +00:00
536c28d4dc
core: Support Windows absolute paths for UDS proxy upstreams ( #5114 )
...
* added some tests for parseUpstreamDialAddress
Test 4 fails because it produces "[[::1]]:80" instead of "[::1]:80"
* support absolute windows path in unix reverse proxy address
* make IsUnixNetwork public, support +h2c and reuse it
* add new tests
2023-02-08 10:05:09 -07:00
c77a6bea66
reverseproxy: Log status code and byte count for websockets ( #5140 )
...
* log response size for websocket request
* record size when using hijack bufio.Writer
2023-02-06 16:14:59 -07:00
12bcbe2c49
caddyhttp: Pluggable trusted proxy IP range sources ( #5328 )
...
* caddyhttp: Pluggable trusted proxy IP range sources
* Add request to the IPRangeSource interface
2023-02-06 12:44:11 -07:00
8d3a1b8bcb
caddyauth: Use singleflight for basic auth ( #5344 )
...
* caddyauth: Add singleflight for basic auth
* Fixes #5338
* it occurred the thunder herd problem like this https://medium.com/@mhrlife/avoid-duplicate-requests-while-filling-cache-98c687879f59
* Update modules/caddyhttp/caddyauth/basicauth.go
Fix comment
Co-authored-by: Francis Lavoie <lavofr@gmail.com >
---------
Co-authored-by: Francis Lavoie <lavofr@gmail.com >
Co-authored-by: Matt Holt <mholt@users.noreply.github.com >
2023-02-06 18:29:03 +00:00
e62b5fb586
chore: Build with Go 1.20, keep minimum at 1.18 for now ( #5353 )
2023-02-06 11:29:20 -05:00
201b9b41f9
chore: Fix warning "range variable captured by func literal" ( #5348 )
2023-01-31 03:07:57 -05:00
e9d95ab29f
reverseproxy: Add flag to short command to disable redirects ( #5330 )
...
Co-authored-by: Francis Lavoie <lavofr@gmail.com >
Fixes undefined
2023-01-25 09:40:08 -05:00
962310204f
tracing: Support placeholders in span name ( #5329 )
...
Fixes https://github.com/caddyserver/caddy/issues/5171
2023-01-25 02:26:44 -05:00
223cbe3d0b
caddyhttp: Add server-level trusted_proxies
config ( #5103 )
2023-01-10 00:08:23 -05:00
845bc4d50b
reverseproxy: Fix hanging for Transfer-Encoding: chunked ( #5289 )
...
* Fixes #5236
* enable request body buffering in reverse proxy
when the request header has Transfer-Encoding: chunked
2023-01-09 00:13:34 -07:00
e450a7377b
reverseproxy: Don't enable auto-https when --from
flag is http ( #5269 )
2023-01-06 15:42:07 -05:00
d74f6fd967
reverseproxy: Set origreq in active health check ( #5284 )
...
* reverseproxy: Set origreq in active health check
Fix #5281
* Oops; dereference Request
2023-01-06 15:06:38 -05:00
4e9ad50f65
fileserver: Add a couple test cases
...
With placeholders
2023-01-04 11:07:27 -07:00
dac7cacd4d
encode: Respect Cache-Control no-transform ( #5257 )
...
* encode: respect Cache-Control HTTP header no-transform
* encode: switch to strings.Contains
2022-12-20 13:26:53 -07:00
fac35db9dc
go.mod: Update quic-go to v0.31.0
...
And fix a comment typo
2022-12-08 08:55:04 -07:00
d4a7d89f56
reverseproxy: Improve hostByHashing distribution ( #5229 )
...
* If upstreams are all using same host but with different ports
ie:
foobar:4001
foobar:4002
foobar:4003
...
Because fnv-1a has not a good enough avalanche effect
Then the hostByHashing result is not well balanced over
all upstreams
As last byte FNV input tend to affect few bits, the idea is to change
the concatenation order between the key and the upstream strings
So the upstream last byte have more impact on hash diffusion
2022-12-05 11:28:12 -07:00
ae77a56ac8
Clarify some docs
2022-11-30 16:03:31 -07:00
ee7c92ec9b
reverseproxy: Mask the WS close message when we're the client ( #5199 )
...
* reverseproxy: Mask the WS close message when we're the client
* weakrand
* Bump golangci-lint version so path ignores work on Windows
* gofmt
* ugh, gofmt everything, I guess
2022-11-14 09:38:02 -07:00
087f126cf4
caddyhttp: Canonicalize header field names ( #5176 )
2022-10-29 16:35:44 -04:00
ed503118dd
caddyhttp: add placeholder {http.request.orig_uri.path.*} ( #5161 )
2022-10-24 11:57:50 -06:00
a3ae146cbd
fileserver: Reject non-GET/HEAD requests ( close #5166 ) ( #5167 )
...
* fileserver: Reject non-GET/HEAD requests (close #5166 )
* Set Allow header according to RFC 9110 10.2.1
2022-10-24 10:23:57 -06:00
4bf6cb4199
fileserver: Reject ADS and short name paths; trim trailing dots and spaces on Windows ( #5148 )
...
* fileserver: Reject ADS and short name paths
* caddyhttp: Trim trailing space and dot on Windows
Windows ignores trailing dots and spaces in filenames.
* Fix test
* Adjust path filters
* Revert Windows test
* Actually revert the test
* Just check for colons
2022-10-18 21:55:25 -06:00
72e7edda1f
map: Clarified how destination values should be formatted ( #5156 )
2022-10-18 18:14:53 -06:00
1cd594963e
docs: Fix templates documentation, stray newline breaks godoc ( #5149 )
2022-10-16 12:25:44 -04:00
6bad878a22
httpcaddyfile: Improve detection of indistinguishable TLS automation policies ( #5120 )
...
* httpcaddyfile: Skip some logic if auto_https off
* Try removing this check altogether...
* Refine test timeouts slightly, sigh
* caddyhttp: Assume udp for unrecognized network type
Seems like the reasonable thing to do if a plugin registers its own
network type.
* Add comment to document my lack of knowledge
* Clean up and prepare to merge
Add comments to try to explain what happened
2022-10-13 11:30:57 -06:00
3e1fd2a8d4
httpcaddyfile: Wrap site block in subroute if host matcher used ( #5130 )
...
* httpcaddyfile: Wrap site block in subroute if host matcher used (fix #5124 )
* Correct boolean logic (oops)
2022-10-12 09:27:08 -06:00
33f60da9f2
fileserver: stop listing dir when request context is cancelled ( #5131 )
...
Prevents caddy from performing disk IO needlessly when the request is cancelled before the listing is finished.
Closes #5129
2022-10-08 12:56:35 -06:00
99ffe93388
logging: Fix skip_hosts
with wildcards ( #5102 )
...
Fix #4859
2022-10-05 12:14:13 -06:00
e07a267276
caddytest: Revise sleep durations
...
Attempt to reduce flakiness a bit more
Test suite needs to be rewritten.
2022-10-05 11:40:41 -06:00