Nginx, like all server systems, is not always the perfect option for every task, though it is definitely high on the list. Nginx works best with static content, such as images, text, HTML code, etc., but has little to no native support for dynamic content, and relies on sending the content to third party processors, such as HHVM or PHP-FPM in the case of PHP. The hand-off of the process to a different server results in a longer processing time, bringing NginX to an "even" score compared to Apache, in terms of performance as it pertains to dynamic content. Nginx is, in my opinion, the obvious choice, having a performance increase of 2-3 times over Apache when serving static content, and comparable performance to Apache when serving dynamic content, while having native support for additional performance tools, such as caching, proxies, and load balancing. However, each server does have different ways of serving information (E.G. NginX does not use .htacces for directory specific configs) and should always be thoroughly researched as it pertains to your individual project prior to making a final decision.