Comments (4)
Right now I don't have plans to support URL rewriting since I would also have to support rewriting URLs in responses and I'm not convinced that URL rewriting is necessary in general. Services should announce the routes they serve and have handlers to service them. Fabio is fast even with lots of routes per host to the number of routes don't matter.
You probably don't have two services responding to /api
directly but to some sub path like /api/foo
and /api/bar
.
Having two different services announce the same route (or parts thereof) allows you to migrate from one implementatin to another. Traffic shaping allows you to do this gradually. This is how we migrate Java services to Go or split up services which have become too large into smaller ones.
from fabio.
Can you explain how many paths you would have to register and for how many services? I'm also interested in why you have an /OrderService
prefix that is not used by the services. What is the use case for that?
To give you an idea: we generally register one or two routes per service.
from fabio.
I have decided not to support this since fabio favors convention over configuration. If a service handles traffic on /foo/bar
then it should announce that route and have a handler for it. By expecting the router to strip part of the URL the service behaves differently when run with or without the router which makes the router an essential part of the configuration. That is against the idea of fabio which is supposed to be stateless and zero-conf.
from fabio.
This makes a lot of sense, app should understand the routes it announces.
Btw, where did the docker-compose go? I remember there was a demo with compose.
from fabio.
Related Issues (20)
- windows: setting logging path in fabio properties HOT 3
- Datadog fabiolb_http.status - aggregation by PATH
- Fabio is using Datadog reserved tag keys HOT 1
- Handle Custom Domain with SSL on Fabio HOT 5
- trace: protect field access with lock to avoid possible data race
- Please bump golang.org/x/sys dependency to enable a build on riscv64-freebsd
- Multiple entries in proxy.auth do not work as specified in documentation
- Potential goroutine leak in server.go
- Can Fabio exclude sidecar-proxy service on port 20000 when consul runs on kuberneites HOT 2
- Feature request: allow specifying route add https://site same as route add site:443
- Feature request: allow specifying default options
- connection reset by peer
- TCP no route - cant balance tcp HOT 3
- USE OF CLOSE NETWORK CONNECTION
- CVE-2023-44487 HTTP/2 rapid reset HOT 2
- Unable to load correct certificates if 1 invalid one is in consul k/v
- This repository is unmaintaned. HOT 7
- certificates - cert and ca chain/intermediate HOT 3
- Fabio not exporting all the metrics with prometheus HOT 6
- Problem with path strip and prepend HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from fabio.