Set up remote access for software on multiple machines (multiple domains as well)

I have two Raspberry Pi’s and both of them have OpenMediaVault and Portainer installed. I’ve purchased two domain names and I am trying to set up remote access for these software via Nginx Proxy Manager and Cloudflare. To start, I’m trying to set up remote access for OpenMediaVault at omv.domain-1.com and omv.domain-2.win. The problem is, I have only one public IP for my home and I am able to set up port forwarding for ports 80 and 443 for only one of the Pi’s (this is required for Nginx, and I set this up for 192.168.1.7).

Here are the private/internal IP’s of my Pi’s:
192.168.1.8 (the one I want to set up with domain-1.com)
192.168.1.7 (the one I want to set up with domain-2.win)

Finally, I’m able to set up remote access only for one of the Raspberry Pi’s (the one at 192.168.1.7).

Is there any way I can set up remote access for both Pi’s with the same public IP (Or is there a way to get another public IP without purchasing a server or anything like that, e.g., get another router and somehow set its public IP to something else)?

What I do, is send all traffic that requests 80 and 443 to a single NGINX proxy VM or container. That proxy container, then proxies the traffic to the correct internal VM based on the domain name that’s requested. With an NGINX proxy, you can basically just create a single VM or Container to act as the proxy, and route external traffic to the correct internal VM accordingly. It’s the only good option to do so that I can think of, unless you have a block of static IPs.

I’ve never done a video on creating an NGINX proxy, because the challenge is that you often need different settings in NGINX depending on what’s being proxied. Typically, you can find the correct settings and config file examples from either the developer of the app you’re running, or finding a blog specific to that app. But since it’s so different from one app to another, it’s hard to create content on.