NGINX vs. Apache Web Server

NGINX vs. Apache Web Server

Apache operates in "prefork mode," employing a predetermined quantity of processes, each dedicated to handling one request at a time, whether static or dynamic.

In contrast, NGINX takes an asynchronous approach toward requests. A single NGINX process can effectively handle numerous concurrent requests, limited only by the available system resources.

Unlike Apache, NGINX does not integrate server-side languages directly into its processes. Instead, NGINX forwards these requests to an external process, such as PHP FPM, for server-side processing.

NGINX excels at delivering static files rapidly, with the server-side processes remaining oblivious to this operation. Conversely, Apache handles all resources with server-side overhead, leading to a greater consumption of server resources compared to NGINX.

Performance

  • NGINX: Swift Handling of Static Resources

  • NGINX: Support for Higher Concurrent Requests - Capable of managing thousands of requests on a single thread.

  • Apache: Serves requests up to a pre-configured limit, rejecting any exceeding requests.

  • NGINX wins!

Configuration

  • NGINX prioritizes URI locations, while Apache favors file system locations as a primary consideration.