Using a reverse proxy
Express is capable of performing everything that is expected of a modern web server, such as logging requests, HTTPS, serving files and so on, but it is best used as an application server behind a reverse proxy. That way, Express can focus solely on processing dynamic requests, while other tasks can be offloaded to the reverse proxy, thereby increasing the performance of the app.
It is a standard practice in the industry to put a front-facing proxy (another name for reverse proxy) in front of a series of application servers to load-balance and scale the app.
The following illustration shows how an application server works with a reverse proxy to serve a website. In a load-balanced setup, there would be more upstream application servers:
Here are some of the tasks that can be performed by Express, but are best handled by the reverse proxy:
Task |
Description |
---|---|
Logging requests and errors |
Keeping track of requests made to the server and HTTP errors generated. |
Serving static... |