Commit graph

275 commits

Author SHA1 Message Date
Matthias Schneider 84b125bdde
added support for tcp proxyProtocol v1&v2 to backend 2020-11-17 13:04:04 +01:00
Fernandez Ludovic 520fcf82ae Merge branch v2.3 into master. 2020-11-09 00:07:28 +01:00
Ludovic Fernandez 267d0b7b5a
chore: update linter. 2020-11-06 09:26:03 +01:00
Ludovic Fernandez 05333b9579
acme: new HTTP and TLS challenges implementations. 2020-10-29 15:40:04 +01:00
Tristan Weil db007efe00
Ignore errors when setting keepalive period is not supported by the system 2020-10-28 15:32:04 +01:00
Robin Müller f2e53a3569
Re-add server up metrics 2020-09-26 13:30:03 +02:00
Fernandez Ludovic 86c099d629 Merge branch v2.3 into master 2020-09-17 12:32:18 +02:00
Jean-Baptiste Doumenjou c0f1e74bed
chore: move to Traefik organization.
Co-authored-by: Romain <rtribotte@users.noreply.github.com>
2020-09-16 15:46:04 +02:00
Julien Salleyron 76f42a3013
add ServersTransport on services 2020-09-11 15:40:03 +02:00
Ludovic Fernandez 66d151df77
Improve plugins builder. 2020-09-07 13:58:03 +02:00
Fernandez Ludovic 3678bd5a93 Merge branch v2.2 into v2.3 2020-09-04 21:06:11 +02:00
Julien Salleyron 52790d3c37
Headers response modifier is directly applied by headers middleware
Co-authored-by: Ludovic Fernandez <ldez@users.noreply.github.com>
2020-09-01 18:16:04 +02:00
Ludovic Fernandez 1502d20def
chore: move the parser to a dedicated package. 2020-08-17 18:04:03 +02:00
Ludovic Fernandez eecc2f4dd7
Update to go1.15 2020-08-17 12:02:03 +02:00
jb doumenjou 207d0bec78 Merge v2.2 into v2.3 2020-07-22 15:49:28 +02:00
Ludovic Fernandez 2c7f6e4def
fix: drop host port to compare with SNI. 2020-07-20 18:32:03 +02:00
Stephen Solka dcd0cda0c6
prefer NoError/Error over Nil/NotNil 2020-07-19 13:10:03 +02:00
Julien Salleyron 0b7aaa3643
Fix domain fronting
Co-authored-by: Ludovic Fernandez <ldez@users.noreply.github.com>
2020-07-17 15:38:04 +02:00
Fernandez Ludovic 0186c31d59 feat: plugins integration. 2020-07-15 20:14:04 +02:00
Julien Salleyron 4a31544024 feat: Traefik Pilot integration.
Co-authored-by: Ludovic Fernandez <ldez@users.noreply.github.com>
2020-07-15 20:14:04 +02:00
Romain 0e97a3becd
Revert domain fronting fix
* revert domain fronting changes

* reintroduce HostHeader rule

* add doc for removals
2020-07-13 17:58:03 +02:00
Romain 2b35397169
Disable domain fronting
Co-authored-by: jbdoumenjou <jb.doumenjou@gmail.com>
2020-07-08 12:18:03 +02:00
Ludovic Fernandez a20e90aa17
chore: update linter. 2020-07-07 14:42:03 +02:00
Kevin Pollet 4d71f682b3
Fix race condition issues with provided dynamic configuration
* tests: add tests to show race condition on provider config

* fix: store a deep copy of previous provider config

* fix: send a deep copy of provdier config to watcher listener
2020-07-02 11:18:04 +02:00
mpl 9f32292473
internal handlers: support for response modifiers
Co-authored-by: Julien Salleyron <julien@containo.us>
Co-authored-by: Romain <rtribotte@users.noreply.github.com>
Co-authored-by: Jean-Baptiste Doumenjou <jb.doumenjou@gmail.com>
2020-06-15 12:20:05 +02:00
Ludovic Fernandez 328611c619
Update linter 2020-05-11 12:06:07 +02:00
Michael a813d32c53
Manage case for all Websocket headers 2020-04-27 18:12:04 +02:00
Thomas Brandstetter 756aa82aa9
Fix case-sensitive header Sec-Websocket-Version 2020-04-21 17:16:05 +02:00
Nicholas Wiersma 2171cb7f3d
fix: consider UDP when checking for empty config 2020-04-16 16:18:04 +02:00
Michael daf4258472
FIx wS heAder 2020-04-14 18:24:04 +02:00
Fernandez Ludovic b54412e82e Merge branch v2.1 into v2.2 2020-03-24 14:18:39 +01:00
Julien Salleyron dd436a689f
Force http/1.1 for upgrade (Traefik v2) 2020-03-23 16:48:06 +01:00
Ludovic Fernandez 0c28630948
Fix sameSite (Traefik v2) 2020-03-23 11:24:05 +01:00
mpl 63d7ed74f1
udp: replace concurrently reset timer with ticker
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
2020-03-18 14:50:06 +01:00
Ludovic Fernandez d02bb28920
Router entry points on reload. 2020-03-09 11:12:05 +01:00
Dmytro Tananayskiy cf7f0f878a Support mirroring request body
Co-authored-by: Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
2020-03-05 18:30:07 +01:00
Traefiker Bot a6040c623b
Entry point redirection and default routers configuration
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
Co-authored-by: Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
2020-03-05 12:46:05 +01:00
Fernandez Ludovic e9d0a16a3b Merge 'v2.1' into master 2020-02-29 00:59:18 +01:00
Robin Müller 18d90ecd96
Do not follow redirects for the health check URLs 2020-02-26 17:28:04 +01:00
Ma Zi'ang 98f304f8b0
Use EDF schedule algorithm for WeightedRoundRobin 2020-02-26 11:56:05 +01:00
Julien Salleyron 1e7f34c271
Launch healhcheck only one time instead of two 2020-02-25 16:30:05 +01:00
Daniel Tomcej a474e196ea
Add TLSStores to Kubernetes CRD 2020-02-24 17:14:06 +01:00
Julien Salleyron ee6d28b25e
Build all UDP services on an entrypoint 2020-02-17 18:02:04 +01:00
Ludovic Fernandez c33348e80c
fix: return an error when ping is not enabled. 2020-02-11 16:06:06 +01:00
mpl 115d42e0f0
UDP support
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
2020-02-11 01:26:04 +01:00
Andrew Parker 6e43ab5897
Don't throw away valid configuration updates 2020-02-10 21:40:06 +01:00
Fernandez Ludovic aa21351d0d Merge branch v2.1 into master 2020-02-10 16:47:13 +01:00
Daniel Tomcej b498c7bcbb
Properly purge default certificate from stores before logging 2020-02-05 18:46:03 +01:00
Julien Salleyron 1b63c95c4e
Fix kubernetes providers shutdown and clean safe.Pool 2020-02-03 17:56:04 +01:00
mpl 16288d171c use provider-qualified name when recursing for chain 2020-01-27 10:40:05 +01:00
Fernandez Ludovic 60e247862a Merge branch v2.1 into master 2020-01-21 18:41:46 +01:00
Julien Salleyron c296a4a967 Remove Content-Type auto-detection
Co-authored-by: mpl <mathieu.lonjaret@gmail.com>
2020-01-21 18:06:03 +01:00
mpl 24192a3797 fix memleak in safe.Pool
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
2020-01-20 17:42:05 +01:00
Fernandez Ludovic da3d814c8b Merge branch 'v2.1' into master 2020-01-07 19:13:48 +01:00
Julien Salleyron 807dc46ad0 Handle respondingtimeout and better shutdown tests.
Co-authored-by: Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
2020-01-06 16:56:05 +01:00
Dmitry Sharshakov 4f669bdd66 Don't set user-agent to Go-http-client/1.1 2019-12-18 11:22:06 +01:00
Fernandez Ludovic 2d3fc613ec Merge branch 'v2.1' into master 2019-12-11 22:14:26 +01:00
Fernandez Ludovic 5c091a1871 Merge branch 'v2.0' into v2.1 2019-12-09 18:48:20 +01:00
Ludovic Fernandez 1a7a3a4233 fix: remove double call to server Close. 2019-12-09 15:14:06 +01:00
Julien Salleyron d2e458f673 Remove mirroring impact in accesslog 2019-12-09 15:12:06 +01:00
Antoine 0e6dce7093 Do not stop to listen on tcp listeners on temporary errors 2019-12-04 16:26:05 +01:00
Fernandez Ludovic 829649e905 Merge branch 'v2.1' into master 2019-12-03 10:43:25 +01:00
Fernandez Ludovic 89919dbe36 Merge branch 'v2.0' into v2.1 2019-12-02 18:20:29 +01:00
Jean-Baptiste Doumenjou efcc9d51d4 Healthcheck managed for all related services
Co-authored-by: Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
2019-11-29 12:40:05 +01:00
Amine Benseddik fe8b090911 Elastic APM tracer implementation 2019-11-27 16:00:07 +01:00
Maxim Fominykh bd75eddc8e Duration order consistency when multiplying number by time unit 2019-11-26 21:38:03 +01:00
Ludovic Fernandez 424e2a9439 Add internal provider
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
2019-11-14 16:40:05 +01:00
Ludovic Fernandez 3410541a2f Conditionnal compression based on Content-Type 2019-10-31 11:36:05 +01:00
Ludovic Fernandez 8f000423ed fix: default tracing backend. 2019-10-28 12:26:05 +01:00
Michael a6cdd701e2 Set proxy protocol logger to DEBUG level 2019-10-24 10:02:06 +02:00
Ludovic Fernandez 48f11900d3 fix: default passHostHeader for file provider. 2019-09-30 18:12:04 +02:00
Ludovic Fernandez 29efac3e5e fix: update linter. 2019-09-26 11:00:06 +02:00
Ludovic Fernandez 027d313df5 fix: improve log for invalid middleware. 2019-09-26 10:04:04 +02:00
mpl 6f6f999129 Do not initialize list of middlewares if not needed
Co-authored-by: Ludovic Fernandez <ldez@users.noreply.github.com>
2019-09-25 18:20:04 +02:00
Jean-Baptiste Doumenjou 0f1911ba68 Return an actual server status updater 2019-09-18 17:56:05 +02:00
Julien Salleyron e0a1592e6e Fix case-sensitive header in websocket 2019-09-17 16:12:04 +02:00
Julien Salleyron 685c6dc00c Add weighted round robin load balancer on TCP
Co-authored-by: Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
2019-09-13 20:00:06 +02:00
Ludovic Fernandez 8e18d37b3d fix: logger and context. 2019-09-13 19:28:04 +02:00
Julien Salleyron b55be9fdea On client CloseWrite, do CloseWrite instead of Close for backend
Co-authored-by: Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
2019-09-13 17:46:04 +02:00
Ludovic Fernandez 6e8138e19b Update golangci-lint 2019-09-10 17:52:04 +02:00
Julien Salleyron 34be181706 Add provider in middleware chain 2019-09-10 16:12:05 +02:00
Ludovic Fernandez 25f4c23ab2 Write HTTP server logs into the global logger. 2019-09-09 14:52:04 +02:00
Julien Salleyron d044c0f4cc New API security 2019-09-06 15:08:04 +02:00
Julien Salleyron 1959e1fd44 Auth middlewares in kubernetes CRD uses secrets 2019-09-05 13:42:04 +02:00
Ludovic Fernandez 10acbb8d92 Don't panic with undefined middleware 2019-09-03 15:22:05 +02:00
Ludovic Fernandez a917115a85 fix buffering middleware 2019-09-03 15:02:05 +02:00
Ludovic Fernandez 306e5081d9 fix: Datadog case. 2019-09-02 03:18:04 -07:00
Julien Salleyron 38508f9a9c Fix recovered panic when websocket is mirrored 2019-08-29 01:28:05 -07:00
Julien Salleyron 602a2ea541 Adds mirroring service 2019-08-26 10:00:04 -07:00
Fedorenko Dmitrij e1831c4c60 Add support proxyprotocol v2 2019-08-26 05:40:04 -07:00
mpl 4ec90c5c0d Add rate limiter, rename maxConn into inFlightReq
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
Co-authored-by: Jean-Baptiste Doumenjou <jb.doumenjou@gmail.com>
2019-08-26 03:20:06 -07:00
Julien Salleyron 6fed76a687 WeightedRoundRobin load balancer
Co-authored-by: Ludovic Fernandez <ldez@users.noreply.github.com>
2019-08-26 01:30:05 -07:00
Fernandez Ludovic 4c5e7a238d chore: go module 2019-08-12 05:06:04 -07:00
Ludovic Fernandez 1800b0b69c Improve error on router without service.
Co-authored-by: Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
2019-07-19 16:42:04 +02:00
mpl 092aa8fa6d API: remove configuration of Entrypoint and Middlewares
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
2019-07-19 12:28:07 +02:00
Ludovic Fernandez f75f73f3d2 Certificate resolvers.
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
Co-authored-by: Jean-Baptiste Doumenjou <jb.doumenjou@gmail.com>
2019-07-19 11:52:04 +02:00
Julien Salleyron e3627e9cba Disable RateLimit temporarily 2019-07-19 10:50:05 +02:00
Michael 8e97af8dc3 Add Metrics 2019-07-18 21:36:05 +02:00
mpl 6fdd48509e config: deal with multiple errors and their criticality
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
2019-07-15 17:04:04 +02:00
Daniel Tomcej 51486b18fa Enhance REST provider 2019-07-13 01:24:03 +02:00
Ludovic Fernandez c8bf8e896a Move dynamic config into a dedicated package. 2019-07-10 09:26:04 +02:00
Michael 09cc1161c9 Generate deepcopy for configuration struct 2019-07-09 15:18:04 +02:00
mpl 39aae4167e TLSOptions: handle conflict: same host name, different TLS options
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
2019-07-03 19:22:05 +02:00
Julien Salleyron 4360ca14c1 Use h2c from x/net to handle h2c requests
Co-authored-by: Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
2019-07-01 15:08:04 +02:00
Ludovic Fernandez c7d336f958 Use the same case everywhere 2019-07-01 11:30:05 +02:00
Máté Szabó f6436663eb Make HTTP Keep-Alive timeout configurable for backend connections 2019-06-28 00:36:04 +02:00
Michael 84d7c65039 Improve tracing 2019-06-28 00:16:04 +02:00
Ludovic Fernandez 4245096be4 Define a TLS section to group TLS, TLSOptions, and TLSStores.
Co-authored-by: Jean-Baptiste Doumenjou <jb.doumenjou@gmail.com>
2019-06-27 23:58:03 +02:00
Jean-Baptiste Doumenjou 80b35575df Define TLS options on the Router configuration for Kubernetes
Co-authored-by: juliens <julien@containo.us>
2019-06-21 17:18:05 +02:00
Ludovic Fernandez adc9a65ae3 Use name@provider instead of provider@name. 2019-06-21 09:54:04 +02:00
Ludovic Fernandez e9792b446f Change the provider separator from . to @ 2019-06-20 00:40:05 +02:00
Jean-Baptiste Doumenjou 85ce16b34f Define TLS options on the Router configuration
Co-authored-by: juliens <julien@containo.us>
2019-06-17 18:14:08 +02:00
Ludovic Fernandez 8d7eccad5d New static configuration loading system.
Co-authored-by: Mathieu Lonjaret <mathieu.lonjaret@gmail.com>
2019-06-17 11:48:05 +02:00
Amir Keibi d18edd6f77 HttpOnly and Secure flags on the affinity cookie 2019-06-13 00:42:06 +02:00
mpl c4df78b4b9 Add support for TCP (in kubernetes CRD)
Co-authored-by: Jean-Baptiste Doumenjou <jb.doumenjou@gmail.com>
2019-06-11 15:12:04 +02:00
Julien Salleyron 518a37e776 rework loadbalancer support 2019-06-05 22:18:06 +02:00
mpl f6df556eb0 API: expose runtime representation
Co-authored-by: Julien Salleyron <julien.salleyron@gmail.com>
Co-authored-by: Jean-Baptiste Doumenjou <jb.doumenjou@gmail.com>
2019-05-16 10:58:06 +02:00
Ludovic Fernandez c2345c6e9a Don't add TCP proxy when error occurs during creation. 2019-05-09 14:30:06 +02:00
Ludovic Fernandez 2e19e45aa4 Remove github.com/satori/go.uuid. 2019-04-05 12:44:03 +02:00
mpl 49563e638b Fix response modifier initial building
Co-authored-by: Ludovic Fernandez <ldez@users.noreply.github.com>
2019-04-04 11:50:04 +02:00
Ludovic Fernandez da20db862d fix: validation system 2019-04-01 15:30:07 +02:00
Julien Salleyron f8f7edd124 Fix panic while server shutdown 2019-03-21 15:54:07 +01:00
Ludovic Fernandez 72ffa91fe0 Clean old 2019-03-18 11:30:07 +01:00
Julien Salleyron 615ceab597 Fix lock problem in server 2019-03-15 10:04:05 +01:00
Ludovic Fernandez f1b085fa36 Move code to pkg 2019-03-15 09:42:03 +01:00