FQDN IP reverse proxy for a ProxMox 7.3 Cluster LAN

I have an ISP assigned static IP connection delivered by a Fiber SFP connection on the WAN side of a TPLink 7206 Router that acts as the DHCP server for my internal LAN.

On that LAN I have a ProxMox PVE 7.3-4 Cluster built from recycled Dell rack hardware.
5 Nodes, 2 R610’s and 3 R710’s with the equivalent of 120 Xeon CPU’s and 450 GB RAM and 30 TB of raid 5 disk storage.

This provides the platform for a host of Ubuntu Server VM’s to provide web services both internal and external. The internal servers have been easy to roll out as they are all on the shared LAN address space, 192.168.0.1 /24 served by the LAN DHCP with static IP’s, and the internet is accessible to all the local devices.

Serving out through the fiber router though has been difficult in this regard.

The router will NAT route any single VM, but only one at a time. I have three Nextcloud servers, two ERP servers and 2 Apache 2.4 web servers on the cluster, but only one can be externally accessible at a time.

I have been trying to find a reverse proxy solution to allow the web servers to be accessible from the net. I was told that “Caddy is the perfect solution” to this problem as it can be installed on a VM and route all the internal VM’s by traffic by their A records to subdomain names through the single hardware NAT router IP I have, What I am stuck on is the Caddyfile instructions to make this happen.

The TPLink NAT router will serve out any single internal LAN IP address, port range, and protocol set, but only one at a time. How can I configure a Caddyfile to proxy a cluster full of VM’s at the same time?

Yes I have a Caddy 2.62 VM as well on an Ubuntu 22.04.1 LTS server that I can easily have the hardware router connect to, its the Caddyfile construction that has me scratching my head. I have the domains, DNS A records and FQDN static IP, and the VM’s all configured with statically assigned LAN addresses.

Whats the best practices to be able to build and assign entries for the servers on the LAN?