Cloudflare is popular, as they also provide something called Tunnels.
Essentially, your domain points to their public IP, and your server connects to their server. This way, you aren't opening ports on your home network, you aren't leaking your home IP, and they provide various protections against DDOS and stuff.
Only issue is it's for HTTP(s) traffic, and it's cloudflare that terminates SSL so they could inspect your traffic if they wanted to (indeed this is how their various security systems work).
Tailscale offer something similar, I believe.
Some people run their own Reverse Proxy over VPN (RPoVPN), using a VPS as the entry/exit point.
These have the benefit of letting you essentially run a separate network from your home network, more security options with little initial configuration to do, not having to publish your home IP address.
The old school way is to use a Dynamic DNS provider, and open/forward the relevant port(s) on your router.
Most DNS providers have this ability.
You would then run a service on your server(s) that updates the DNS with your IP address incase of a dynamic IP address. Or you can rent a static IP address from your ISP.
There are many DNS providers. I use CloudNS, but it's a bit clunky. Cloudflare provide DNS. I'm sure there are loads of others.
Whether it's using tailscale, wireguard, SSH tunnels, any other VPN, it's all RPoVPN