A reverse proxy is a transparent server application put infront of another web application to act as a central point of serving files over HTTP(S). Often this is necessary when you have multiple backends from different software and can't or don't want to consolidate them in a single web server.
If you only have one IP, you can run multiple domains on the same web server based on the hostname sent in the HTTP header or Server Name Indication (SNI), which doesn't necessarily mean you have to use a reverse proxy.