Apache HTTP Server is the most popular web server on the web, largely due to its wide range of features (modules and plugins), flexibility, and open source development. Even with all its benefits, however, Apache can sometimes struggle with high-traffic and high content volume sites, such as a popular news blog.
To remedy this, some system administrators opt for lightweight, yet powerful alternatives like Ngnix. The disadvantage of lightweight web servers is that they often do not have the flexibility and extensibility that big projects like Apache have. One way to get the best of both worlds is to use a reverse proxy, which Ngnix provides, while still using Apache as your web server.
A proxy sits in front of the web server to better delegate requests. While it may seem counterproductive to add another layer between the user and the web server, it can actually speed up the user experience. When the proxy receives requests for static content, it immediately answers and serves that content to the user, removing some of the load off Apache. When a user accesses something that requires a request for dynamic content, the proxy passes the request to Apache, which handles it as it normally would.
To make it work, you would need to tell Nginx to listen on the normal web server port 80, while Apache would listen on another port. Nginx will then be first in line to receive static requests and still pass off other requests to Apache. For more information about Nginx, visit the project website. For instructions on installing and configuring a reverse proxy, see this article.