I would like to clean slate some internet facing infrastructure, looking for recommendations on what reverse proxy solution would be easiest / most sensible to use to do this. I'm aware of CDN's like cloudflare/bunny that could help here but A; I don't think we need their scale, and B; don't want their cost when I already run servers in a co-lo. I have beginner level experience in Nginx, Traefik, and Cloudflare. Heard of many other solutions for this and I want to know what I should focus my efforts on.
Current Situation;
- Users go straight to these systems external IP
- ~100 back end web pages inside co-lo
- ~100 back end web pages scattered through several US states
- Servers are pretty much all the same Tomcat web servers / copies of a enterprise app with a handful of outliers
- Two domains
- Each server runs it's own SSL certificate, wildcards; I'm concerned with the internet switching to ~45 day certificates in coming years.
- DNS is an "A" record, unique entries for each server, each server has it's own IPv4
- Not using IPv6 at all
Goals for finished solution
- Geo restrict origin; US only, with updates as IP space gets bought & sold (maxmind?)
- Automate SSL certificates
- Changes in resource mapping or rules, or the app updates itself require little down time. We have no SLA, a system wide outage for a handful of minutes non peak time will be acceptable
- Consolidate to single, new domain. DNS will be wildcard and point mostly everything to proxy.
- Users using old domain; display message "transferring you to new URL, please update your bookmark" and then forward them to the new URL for that exact server.
- Real time monitoring, what's in use and how much etc, OK for just table of text
- Some sort of long life internally trusted SSL cert between proxy and back end resources
Stretch goals
- Proxy failover; the back end resources themselves are not capable of load balancing but the proxy itself might be capable of some form of redundancy
- Historical monitoring with history of a month or two, with charts and graphs
- Basic WAF features, something like OWASP mod security, SQL injection, block by threat score, bot mitigation, etc
- Block based on IP reputation, with auto updates
- Block bad bots, with auto updates
- IPv6 availability, terminate at proxy, IPv4 to back end.