Samiksha Jaiswal (Editor)

Nginx

Updated on
Edit
Like
Comment
Share on FacebookTweet on TwitterShare on LinkedInShare on Reddit
Original author(s)
  
Igor Sysoev

Repository
  
hg.nginx.org/nginx/

Developer(s)
  
Nginx, Inc.

Initial release
  
4 October 2004; 12 years ago (2004-10-04)

Stable release
  
1.10.3 (31 January 2017; 54 days ago (2017-01-31)) [±]

Preview release
  
1.11.10 (14 February 2017; 40 days ago (2017-02-14)) [±]

Nginx (/ɛnʒən ɛks/ en-JIN-eks), stylized as (NGINX or nginx), is a web server, which can also be used as a reverse proxy, load balancer and HTTP cache.

Contents

Created by Igor Sysoev in 2002, it runs on Unix, Linux, BSD variants, macOS, Solaris, AIX, HP-UX, and Windows.

Nginx is free and open source software, released under the terms of a BSD-like license. A company of the same name was founded in 2011 to provide support.

Features

Nginx can be deployed to serve dynamic HTTP content on the network using FastCGI, SCGI handlers for scripts, WSGI application servers or Phusion Passenger modules, and it can serve as a software load balancer.

Nginx uses an asynchronous event-driven approach to handling requests. Nginx's modular event-driven architecture can provide more predictable performance under high loads.

According to Netcraft's November 2016 Web Server Survey, Nginx was found to be the second most widely used web server across all "active" sites (18.22% of surveyed sites) and for the top million busiest sites (27.83% of surveyed sites). According to W3Techs, it was used by 37.7% of the top 1 million websites, 49.7% of the top 100,000 websites, and by 57.0% of the top 10,000 websites. According to BuiltWith, it is used on 38.2% of the top 10,000 websites, and its growth within the top 10k, 100k and 1 million segments increased. Wikipedia uses Nginx as its SSL termination proxy. As of OpenBSD release 5.2 (1 November 2012), Nginx became part of the OpenBSD base system, providing an alternative to the system's fork of Apache 1.3, which it was intended to replace, but it was later replaced by OpenBSD's own httpd(8).

HTTP proxy and Web server features

  • Ability to handle more than 10,000 simultaneous connections with a low memory footprint (~2.5 MB per 10k inactive HTTP keep-alive connections)
  • Handling of static files, index files and auto-indexing
  • Reverse proxy with caching
  • Load balancing with in-band health checks
  • Fault tolerance
  • TLS/SSL with SNI and OCSP stapling support, via OpenSSL.
  • FastCGI, SCGI, uWSGI support with caching
  • Name- and IP address-based virtual servers
  • IPv6-compatible
  • HTTP/2 protocol support
  • WebSockets and HTTP/1.1 Upgrade (101 Switching Protocols)
  • FLV and MP4 streaming
  • Web page access authentication
  • gzip compression and decompression
  • URL rewriting
  • Custom logging with on-the-fly gzip compression
  • Concurrent connection limiting
  • Request processing rate limiting
  • Bandwidth throttling
  • Server Side Includes
  • IP address-based geolocation
  • User tracking
  • WebDAV
  • XSLT data processing
  • Embedded Perl scripting
  • Web application firewall with the Naxsi module
  • Mail proxy features

  • TLS/SSL support
  • STARTTLS support
  • SMTP, POP3, and IMAP proxy
  • Authentication using an external HTTP server
  • Other features include upgrading executable and configuration without client connections loss, and a module-based architecture with both core and third-party module support.

    The paid Plus product includes additional features such as advanced load balancing and access to an expanded suite of metrics for performance monitoring.

    Performance vs Apache

    Nginx was written with an explicit goal of outperforming the Apache web server. Out of the box, serving static files, Nginx uses dramatically less memory than Apache, and can handle roughly four times more requests per second. This performance boost comes at a cost of decreased flexibility, such as the ability to override systemwide access settings on a per-file basis (Apache accomplishes this with an .htaccess file, while Nginx has no such feature built in). Formerly, adding third party modules to nginx required recompiling the application from source with the modules statically linked. This was partially overcome in version 1.9.11 with the addition of dynamic module loading. However, the modules still must be compiled at the same time as nginx, and not all modules are compatible with this system; those require the older static linking process.

    History

    Igor Sysoev began development of Nginx in 2002. Originally, Nginx was developed to solve the C10K Problem, and to fill the needs of websites including Rambler, for which it was serving 500 million requests per day by September 2008.

    A company of the same name was founded in July 2011 by Sysoev to provide commercial products and support for the software.

    The company's principal place of business is San Francisco, California, while legally incorporated in British Virgin Islands.

    In October 2011, Nginx raised $3 million from BV Capital, Runa Capital and MSD Capital, Michael Dell‘s venture fund.

    The company announced commercial support options for companies using Nginx in production. Nginx offered commercial support in February 2012, and paid Nginx Plus subscription in August 2013.

    Support packages focus on installation, configuration, performance improvement, etc. Support includes proactive notifications about major changes, security patches, updates and patches.

    WordPress developer Automattic and content delivery network provider MaxCDN became funding partners for an update to Google's SPDY version 3.1, slated for early 2014.

    Nginx also offers consulting services to assist customers in custom configuration or adding additional features.

    In October 2013, Nginx raised a $10 million series B investment round led by New Enterprise Associates. That round included previous investors, as well as Aaron Levie, CEO and founder of Box.com. In December 2014, Nginx raised a $20 million series B1 round led by New Enterprise Associates, with participation from e.ventures (formerly BV Capital), Runa Capital, Index Ventures and Nginx’s own CEO Gus Robertson.

    References

    Nginx Wikipedia