Nginx Products

NGINX F/OSS

Any web site or service requiring performance, scalability and reliability

NGINX Plus

Businesses requiring a trusted, supported Web Server and Application Delivery Solution

NGINX SMS

Multi-platform Video Delivery, with consistent performance and reliability

Ref: http://nginx.com/products/feature-matrix/

Nginx Vs Apache

  • Nginx is based on event-driven architecture. Apache is based on process-driven architecture. It is interesting to note that Apache in its earliest release was not having multitasking architecture. Later Apache MPM (multi-processing module) was added to achieve this.
  • Nginx doesn’t create a new process for a new request. Apache creates a new process for each request.
  • In Nginx, memory consumption is very low for serving static pages. But, Apache’s nature of creating new process for each request increases the memory consumption.
  • Several benchmarking results indicates that when compared to Apache, Nginx is extremely fast for serving static pages.
  • Nginx development started only in 2002. But Apache initial release was in 1995.
  • In complex configurations situation, when compared to Nginx, Apache can be configured easily as it comes with lot of configuration features to cover wide range of requirements.
  • When compared to Nginx, Apache has excellent documentation.
  • In general, Nginx have less components to add more features. But Apache has tons of features and provides lot more functionality than Nginx.
  • Nginx do not support Operating Systems like OpenVMS and IBMi. But Apache supports much wider range of Operating Systems.
  • Since Nginx comes only with core features that are required for a web server, it is lightweight when compared to Apache.
  • The performance and scalability of Nginx is not completely dependent on hardware resources, whereas the performance and scalability of the Apache is dependent on underlying hardware resources like memory and CPU.

NGINX

NGINX is the world’s most popular open source web server for high-traffic websites

A typical HTTP request processing cycle looks like the following.

  1. Client sends HTTP request.
  2. nginx core chooses the appropriate phase handler based on the configured location matching the request.
  3. If configured to do so, a load balancer picks an upstream server for proxying.
  4. Phase handler does its job and passes each output buffer to the first filter.
  5. First filter passes the output to the second filter.
  6. Second filter passes the output to third (and so on).
  7. Final response is sent to the client.