HOME

TheInfoList



OR:

Nginx (pronounced "engine x" ) is a web server that can also be used as a reverse proxy,
load balancer In computing, load balancing is the process of distributing a set of tasks over a set of resources (computing units), with the aim of making their overall processing more efficient. Load balancing can optimize the response time and avoid uneven ...
, mail proxy and HTTP cache. The software was created by Igor Sysoev and publicly released in 2004. Nginx is free and open-source software, released under the terms of the 2-clause BSD license. A large fraction of web servers use Nginx, often as a load balancer. A company of the same name was founded in 2011 to provide support and ''Nginx Plus'' paid software. In March 2019, the company was acquired by
F5, Inc. F5, Inc. is an American technology company specializing in application security, multi-cloud management, online fraud prevention, application delivery networking (ADN), application availability & performance, network security, and access & autho ...
for $670 million.


Popularity

W3Tech's web server count of all web sites ranked Nginx first with 33.6%. Apache was second at 31.4% and Cloudflare Server third at 21.6%. , Netcraft estimated that Nginx served 22.01% of the million busiest websites with Apache a little ahead at 23.04%. Cloudflare at 19.53% and Microsoft Internet Information Services at 5.78% rounded out the top four servers for the busiest websites. Some of Netcraft's other statistics show Nginx ahead of Apache. A 2018 survey of Docker usage found that Nginx was the most commonly deployed technology in Docker containers. In OpenBSD version 5.2 (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 later in version 5.6 (November 2014) it was removed in favor of OpenBSD's own httpd(8).


Features

Nginx is easy to configure in order to serve static web content or to act as a proxy server. Nginx can be deployed to also serve dynamic content on the network using
FastCGI FastCGI is a binary protocol for interfacing interactive programs with a web server. It is a variation on the earlier Common Gateway Interface (CGI). FastCGI's main aim is to reduce the overhead related to interfacing between web server and CGI ...
,
SCGI The Simple Common Gateway Interface (SCGI) is a protocol for applications to interface with HTTP servers, as an alternative to the CGI protocol. It is similar to FastCGI but is designed to be easier to parse. Unlike CGI, it permits a long-running ...
handlers for
scripts Script may refer to: Writing systems * Script, a distinctive writing system, based on a repertoire of specific elements or symbols, or that repertoire * Script (styles of handwriting) ** Script typeface, a typeface with characteristics of handw ...
,
WSGI The Web Server Gateway Interface (WSGI, pronounced ''whiskey'' or ) is a simple calling convention for web servers to forward requests to web applications or frameworks written in the Python programming language. The current version of WSGI, ...
application servers or Phusion Passenger modules, and it can serve as a software
load balancer In computing, load balancing is the process of distributing a set of tasks over a set of resources (computing units), with the aim of making their overall processing more efficient. Load balancing can optimize the response time and avoid uneven ...
. Nginx uses an asynchronous event-driven approach, rather than threads, to handle requests. Nginx's modular event-driven architecture can provide predictable performance under high loads.


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 *
TLS/SSL Transport Layer Security (TLS) is a cryptographic protocol designed to provide communications security over a computer network. The protocol is widely used in applications such as email, instant messaging, and voice over IP, but its use in secur ...
with
SNI SNI may refer to: Science and technology * Substitution nucleophilic internal, a chemistry reaction mechanism * Swedish Standard Industrial Classification, a Swedish economic classification system * Server Name Indication, an extension to the ...
and OCSP stapling support, via OpenSSL *
FastCGI FastCGI is a binary protocol for interfacing interactive programs with a web server. It is a variation on the earlier Common Gateway Interface (CGI). FastCGI's main aim is to reduce the overhead related to interfacing between web server and CGI ...
,
SCGI The Simple Common Gateway Interface (SCGI) is a protocol for applications to interface with HTTP servers, as an alternative to the CGI protocol. It is similar to FastCGI but is designed to be easier to parse. Unlike CGI, it permits a long-running ...
,
uWSGI uWSGI is an open source software application that "aims at developing a full stack for building hosting services". It is named after the Web Server Gateway Interface (WSGI), which was the first plugin supported by the project. uWSGI is maintai ...
support with caching * gRPC support since March 2018, version 1.13.10. * Name- and IP address-based virtual servers *
IPv6 Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communications protocol that provides an identification and location system for computers on networks and routes traffic across the Internet. I ...
-compatible * WebSockets since 1.3.13, including acting as a reverse proxy and do load balancing of WebSocket applications. * HTTP/1.1 Upgrade (101 Switching Protocols), HTTP/2 protocol support * URL rewriting and redirection


Mail proxy features

*
TLS/SSL Transport Layer Security (TLS) is a cryptographic protocol designed to provide communications security over a computer network. The protocol is widely used in applications such as email, instant messaging, and voice over IP, but its use in secur ...
support * STARTTLS support * SMTP, POP3, and IMAP
proxy Proxy may refer to: * Proxy or agent (law), a substitute authorized to act for another entity or a document which authorizes the agent so to act * Proxy (climate), a measured variable used to infer the value of a variable of interest in climate re ...
* Requires authentication using an external HTTP server or by an authentication script 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.


Nginx vs Nginx Plus

There are two versions of Nginx: Nginx Open Source and Nginx Plus. Nginx Open Source is free and open-source software. Nginx Plus is sold as a subscription model. It offers features in addition to Nginx Open Source, such as active health checks, session persistence based on cookies, DNS-service-discovery integration, Cache Purging API, AppDynamic, Datalog, Dynatrace New Relic plug-ins, Active-Active HA with config sync, Key-Value Store, on-the-fly with zero downtime updates upstream configurations, and key‑value stores using Nginx Plus API and web application firewall (WAF) dynamic module.


Nginx in comparison to Apache

Nginx was written with an explicit goal of outperforming the Apache web server. Out of the box, serving static files, Nginx uses much less memory than Apache, and can handle roughly four times as many requests per second. However, 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 A stand-alone program, also known as a freestanding program, is a computer program that does not load any external module, library function or program and that is designed to boot with the bootstrap procedure of the target processor – it runs o ...
. This was partially overcome in version 1.9.11 in February 2016, 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; some require the older static linking process.


Nginx Unit

Nginx Unit is an open-source web application server, released in 2017 by NGINX, Inc. to target multi-language microservices-based applications. The initial release supported applications written in Go, PHP, and Python. By version 1.11.0, the support was extended to
Java Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's mo ...
,
Node.js Node.js is an open-source server environment. Node.js is cross-platform and runs on Windows, Linux, Unix, and macOS. Node.js is a back-end JavaScript runtime environment. Node.js runs on the V8 JavaScript Engine and executes JavaScript cod ...
,
Perl Perl is a family of two high-level, general-purpose, interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it also referred to its redesigned "sister language", Perl 6, before the latter's name was offic ...
, and
Ruby A ruby is a pinkish red to blood-red colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called ...
applications; other features include dynamic configuration, request routing, and load balancing.


History

Igor Sysoev began development of Nginx in 2002. Originally, Nginx was developed to solve the
C10k problem The C10k problem is the problem of optimizing network sockets to handle a large number of clients at the same time. The name C10k is a numeronym for concurrently handling ten thousand connections. Handling many concurrent connections is a differ ...
, and to fill the needs of multiple
website A website (also written as a web site) is a collection of web pages and related content that is identified by a common domain name and published on at least one web server. Examples of notable websites are Google, Facebook, Amazon, and W ...
s including the
Rambler Rambler or Ramble may refer to: Places * Rambler, Wyoming * Rambler Channel (藍巴勒海峽), separates Tsing Yi Island and the mainland New Territories in Hong Kong * The Ramble and Lake, Central Park, an area within New York City's Centr ...
search engine and portal, for which it was serving 500 million requests per day by September 2008. Nginx Inc. was founded in July 2011 by Sysoev and Maxim Konovalov 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 ) , anthem = "God Save the King" , song_type = Territorial song , song = "Oh, Beautiful Virgin Islands" , image_map = File:British Virgin Islands on the globe (Americas centered).svg , map_caption = , mapsize = 290px , image_map2 = Brit ...
. In October 2011, Nginx, Inc. raised $3 million from BV Capital,
Runa Capital Runa Capital is an international venture capital firm headquartered in Luxembourg that invests in deep tech ( AI, machine learning, middleware, open source, etc), cloud business software, fintech, edutech and digital health startups in ea ...
, 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. Nginx, Inc. also offers consulting services to assist customers in custom configuration or adding additional features. In October 2013, Nginx, Inc. 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 Index Ventures is a European venture capital firm with dual headquarters in San Francisco and London, investing in technology-enabled companies with a focus on e-commerce, fintech, mobility, gaming, infrastructure/ AI, and security. Since ...
and Nginx's own CEO Gus Robertson. In September 2017, Nginx announced an API management tool, NGINX Controller, which would build off of their API Gateway, NGINX Plus. In October 2017, Nginx, Inc. announced general available Nginx Amplify SaaS providing monitoring and analytics capabilities for Nginx. In June 2018, Nginx, Inc. raised $43 million in Series C Funding in a round led by Goldman Sachs "to Accelerate Application Modernization and Digital Transformation for Enterprises". On 11 March 2019,
F5 Networks F5, Inc. is an American technology company specializing in application security, multi-cloud management, online fraud prevention, application delivery networking (ADN), application availability & performance, network security, and access & auth ...
acquired Nginx, Inc. for US$670 million. On 12 December 2019, it was reported that the Moscow offices of Nginx Inc. had been raided by police, and that Sysoev and Konovalov had been detained. The raid was conducted under a search warrant connected to a copyright claim over Nginx by Rambler—which asserts that it owns all rights to the code because it was written while Sysoev was an employee of the company. On 16 December 2019, Russian state lender Sberbank, which owns 46.5 percent of Rambler, called an extraordinary meeting of Rambler's board of directors asking Rambler's management team to request Russian law enforcement agencies cease pursuit of the criminal case, and begin talks with Nginx and with F5. On 18 January 2022, it was announced that Igor Sysoev is leaving Nginx and F5.


See also

* Comparison of web server software * List of Apache–MySQL–PHP packages * List of Nginx–MySQL–PHP packages *
Web accelerator A web accelerator is a proxy server that reduces website access time. They can be a self-contained hardware appliance or installable software. Web accelerators may be installed on the client computer or mobile device, on ISP servers, on the serve ...
*


References


External links

* {{Web server software 2002 software Companies established in 2011 Cross-platform free software Free proxy servers Free software programmed in C Free web server software Proxy server software for Linux Reverse proxy Software companies of Russia Software using the BSD license Unix network-related software Web server software Web server software for Linux Russian inventions