Trying to understand what you're asking and am not having much success. You say you have one IP. Is this a public IP?
If open api.example.com need the VM response to request domain or subdomain.
If open testing.example.com need show the page in the VM Linux.
Now have cPanel machine response all request, but can't route domains to diferent VM, I don't know if need more IP's or another software for work.
Just not understanding these sentences here, I'm afraid.
Hello. Yes is public IP.
Need open page in different machines by domain name > hostname in Vm
Regards and thanks
It's still not clear what exactly you're trying to achieve here. If you have a single IP, you could use a reverse HTTP proxy and forward the traffic to different machines in the backend by using a URI. Or you could have these three VMs listen on different ports and use PAT on your router's public interface to forward that traffic.