Nginx is known for its speed in serving static pages, much faster than apache and keeping the machine resources very low.
Fundamentally both apache and nginx differs a lot.
Apache works in a multi process/multi threaded architecture, While nginx is an event driven single threaded architecture.(i will come back to event driven later). The main difference this even driven architecture makes is that, a very small number of nginx worker process can serve a very very large number of requests.
Sometimes nginx is also deployed as a front end server, serving static content requests faster to the clients, and apache in behind.
Each worker process handles requests with the help of the event driven model. Nginx does this with the help of a special functionality in linux kernel called as epoll and select poll. Apache when even run by its threaded model utilizes considerably much more system resource than nginx.
In apache when a request is being served, either a thread or a process is created which serves the request. Now if one requst needs some data from the database,and files from disk, etc the process waits for that.
So some processes in apache just sits and wait for certain task to complete(eating system resources).
Suppose a client with a slow internet connection connects to a web server running apache, the apache server retrieves the data from the disk, to serve the client. Now even after serving the client that process will wait until a confirmation is received from that cliet(which will waste that much process resource)
Nginx avoids the idea of child processes. All requests are handled by a single thread. And this single thread will handle everything, with the help of something called as event loop. So the thread pops up whenever a new connection, or some thing is required(not wasting resources.).
Step 1: Gets Request
Step 2: Request Triggers events inside the process
Step 3: Process manages all these events and returns the output(and simultaniously handles other events for other requests)
For more you can get info out here in details :-
http://www.wikivs.com/wiki/Apache_vs_nginx