I'm in the process of re-architecting our web application so that it's more scalable.
One of the requirements is to allow customers to point custom domains AND subdomains at our site, which our Laravel PHP application will work with to determine the content to be shown - i.e. customers have a subdomain at {customername}.app.com
which allows them to log in and administrate.
We've found two super helpful articles that have helped us land an approach and a proof of concept with Caddy 2:
What i'm unsure of, is where to insert the caddy server into our setup.
Traditionally, we'd have a load balancer balancing traffic between two or more app servers, with a database behind that, and an adjacent worker server that isn't open to the internet.
Would we have to put the Caddy server in FRONT of the load balancer, or can we use caddy AS a load balancer? Are there downsides to that? Typically i'd like to use an ELB or something like Nginx/HAproxy on the load balancer as they're typically more recognised and battle tested (as far as i know).
Something like this?
A single caddy proxy in front of the load balancer
Or would we be better having multiple caddy servers in front of each app server? Though that might be harder to scale and we'd end up with multiple certificates issued for the same domains, right?
Caddy proxies in front of every app server
Would love to get a few opinions on the pros/cons of each setup or which would be best.