Nginx :
Nginx is an event based web server
All request are handled by a single thread.
Nginx avoids child processes idea.
Nginx resembles speed
Nginx is better when it comes to memory consumption and connection
Nginx is better when you want load-balancing
For PHP, Nginx might be preferable as it supports PHP internally
Nginx do not support O.S like IBMi and OpenVMS.
Nginx comes only with core features
Nginx performance and scalability do not depend on hardware
Apache:
Apache is a process based server
Single thread handles a single request.
Apache is based on child processes
Apache resemble power
Apache is not up-to the mark when it comes to memory consumption and connection
Apache will refuse new connections when traffic reaches the limit of processes
Apache support’s PHP, Python, Perl and other languages using plugins. It is useful when application is based on Python or Ruby
Apache support much wider range of O.S
Apache provides lot more functionality than Nginx
Apache is dependent on hardware components like CPU and memory