There are a couple things which we'd need to clarify to start with:
- Whether you actually want to dedicate a public IP address to that VM or whether you just want to access the two servers on that port
- Whether you want to be able to use the public IP internally as well as externally
Note: All of the below is explained with the assumption that by private IPs you mean an internal network address, accessible on your internal network, not private to the ESXi host.
If you purely wish to access the VM on those services from an external environment you can configure port forwarding on your internet facing router to forward the ports 22 (SSH) and 80 (HTTP) to the VM.
If you wish to access any arbitrary ports on the VM (externally) without re-configuring your network equipment constantly, the best plan would be to configure Network Address Translation (NAT) on your network equipment, to translate the(/a) public IP address through to the private internal address.
If you need to access this public IP address internally as well as externally, you'll need to configure your internet facing router to perform a (Loopback) hairpin NAT to reroute traffic directed from the internal network to the public IP address. More details about hairpin NAT here: Loopback to forwarded Public IP address from local network - Hairpin NAT