Forward or Reverse proxy?
I have a webapp running on CentOS 7 with Apache that uses the xmlhttprequest and fetch apis to access an Express Server (NodeJS) running on the same machine. My webapp is using port 80 for incoming connections while my Express Server is listening on port 3001.
Upon deploying my webapp I'm confused as to whether I need a Forward Proxy or a Reverse Proxy to accomplish communication to port 3001 of the Express Server. Which proxy should I be configuring?
What you are describing is a reverse proxy.
A normal ("forward") proxy serves one client or a set of clients, permitting access to remote servers requested by the client.
A reverse proxy serves any client, permitting access to one server or a set of servers.
However, when you say that you need the web app to continue sending [its] typical html response
, then the web app is not acting as a proxy, and I no longer believe that you have or need a reverse proxy or any kind of proxy. If there is application code in the web app running on port 80 that is making its own requests to the Node.js server and interpreting the response in order to provide an answer to the client, then you do not have a proxy, you have an Apache front-end server and a back-end Node.js server. The proxy, in your diagram, is between the front-end and the back-end server, it is something different from your front-end Apache server.