NGINX Tutorial

Introduction

NGINX is a free and an open-source tool.

NGINX can be used as a high-performance HTTP server and reverse proxy, as a mail proxy server, or as a generic TCP/UDP proxy server.

NGINX is serving or acting as proxy for more than 29% of the busiest websites as of Sept 2017.

NGINX is known for its high performance, stability, rich feature set, simple configuration, and low resource consumption.

Why use or switch to NGINX?

To use of switch to NGINX, the change in the infrastructure is not needed. It can easily fit into the existing setup and actually enhance it.

Following are some of the features of NGINX :

Speed

If a page loads at an average speed of three seconds, then there is an approximate loss of 22% of visitors. Speed matters a lot.

Acceleration

If your application is running on multiple web servers, NGINX can enhance the performance by controlled routing of traffic to the web servers.

Load Balancing

Purchasing a hardware load balancer costs you a lot. NGINX can distribute traffic to available web servers and balance the load between them. Also they provide fault tolerance by routing the traffic from a dead server to active servers.

Scalable concurrent connection handling

When traffic to a web server increases, say beyond 1000 concurrent users, traditional servers create a thread for each user, thus 1000 concurrent threads. And this is not a good idea when there is a large number of concurrent users hitting your web server. NGINX handles concurrency with ease with its event driven architecture.

Ability to operate on commodity hardware

Commodity hardware can be used with relatively better formance when compared to its counterpart web servers.

On-the-fly upgrades

There is no need to bring your server down to upgrade it. Hence zero downtime.

Easy Installation & Maintenance

NGINX is easy to install and of course maintain.

OS & Platform

There are many options for OS or platform. NGINX is tested on following OS and platforms.

  • FreeBSD 3 — 11 / i386; FreeBSD 5 — 11 / amd64
  • Linux 2.2 — 4 / i386; Linux 2.6 — 4 / amd64; Linux 3 — 4 / armv6l, armv7l, aarch64, ppc64le
  • Solaris 9 / i386, sun4u; Solaris 10 / i386, amd64, sun4v
  • AIX 7.1 / powerpc
  • HP-UX 11.31 / ia64
  • macOS / ppc, i386
  • Windows XP, Windows Server 2003