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