Nginx (pronounced "engine x"
) is a
web server
A web server is computer software and underlying hardware that accepts requests via HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, commonly a web browser or web crawler, initi ...
that can also be used as a
reverse proxy
In computer networks, a reverse proxy is the application that sits in front of back-end applications and forwards client (e.g. browser) requests to those applications. Reverse proxies help increase scalability, performance, resilience and securi ...
,
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 unevenl ...
, mail proxy and
HTTP cache
The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, w ...
. The software was created by
Igor Sysoev
Igor Vladimirovich Sysoev () is a Russian software engineer. In October 2004 he released the Nginx Web server, reverse proxy, load balancer and HTTP cache software and founded Nginx, Inc.
Sysoev was born in 1970 and grew up in Almaty, Kaz ...
and publicly released in 2004.
Nginx is
free and open-source software
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
, 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. 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
Netcraft is an Internet services company based in Bath, Somerset, England. The company provides cybercrime disruption services across a range of industries.
History
Netcraft was founded by Mike Prettejohn. The company provides web server and ...
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
Internet Information Services (IIS-pronounced 2S, formerly Internet Information Server) is an extensible web server software created by Microsoft for use with the Windows NT family. IIS supports HTTP, HTTP/2, HTTPS, FTP, FTPS, SMTP and N ...
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
OpenBSD is a security-focused operating system, security-focused, free and open-source, Unix-like operating system based on the Berkeley Software Distribution (BSD). Theo de Raadt created OpenBSD in 1995 by fork (software development), forking N ...
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
Web content is the text, visual or audio content that is made available online and user encountered as part of the online usage and experience on websites. It may include text, images, sounds and audio, online videos, among other items placed ...
or to act as a
proxy server
In computer networking, a proxy server is a server application that acts as an intermediary between a client requesting a resource and the server providing that resource.
Instead of connecting directly to a server that can fulfill a requ ...
.
Nginx can be deployed to also serve
dynamic content
A server-side dynamic web page is a web page whose construction is controlled by an application server processing server-side scripts. In server-side scripting, parameters determine how the assembly of every new web page proceeds, and includi ...
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 p ...
,
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 ha ...
,
WSGI application servers or
Phusion Passenger
Phusion Passenger (informally also known as mod_rails and mod_rack among the Ruby community) is a free web server and application server with support for Ruby, Python and Node.js. It is designed to integrate into the Apache HTTP Server or the ...
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 unevenl ...
.
Nginx uses an
asynchronous
Asynchrony is the state of not being in synchronization.
Asynchrony or asynchronous may refer to:
Electronics and computing
* Asynchrony (computer programming), the occurrence of events independent of the main program flow, and ways to deal wit ...
event-driven approach, rather than threads, to handle requests.
Nginx's modular
event-driven architecture Event-driven architecture (EDA) is a software architecture paradigm promoting the production, detection, consumption of, and reaction to events.
Overview
An ''event'' can be defined as "a significant change in state". For example, when a consume ...
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
In computer networks, a reverse proxy is the application that sits in front of back-end applications and forwards client (e.g. browser) requests to those applications. Reverse proxies help increase scalability, performance, resilience and securi ...
with caching
*
Load balancing with in-band health checks
*
TLS/SSL with
SNI and
OCSP stapling support, via
OpenSSL
OpenSSL is a software library for applications that provide secure communications over computer networks against eavesdropping or need to identify the party at the other end. It is widely used by Internet servers, including the majority of HT ...
*
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 p ...
,
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 support with caching
*
gRPC
gRPC (Google Remote Procedure Calls) is a cross-platform open source high performance Remote Procedure Call (RPC) framework. gRPC was initially created by Google, which has used a single general-purpose RPC infrastructure called Stubby to conne ...
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
*
WebSocket
WebSocket is a computer communications protocol, providing full-duplex communication channels over a single Transmission Control Protocol, TCP connection. The WebSocket protocol was standardized by the Internet Engineering Task Force, IETF as in ...
s 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
HTTP/2 (originally named HTTP/2.0) is a major revision of the HTTP network protocol used by the World Wide Web. It was derived from the earlier experimental SPDY protocol, originally developed by Google. HTTP/2 was developed by the HTTP Working ...
protocol support
*
URL rewriting
In web applications, a rewrite engine is a software component that performs rewriting on URLs (Uniform Resource Locators), modifying their appearance. This modification is called URL rewriting. It is a way of implementing URL mapping or routing ...
and
redirection
Mail proxy features
*
TLS/SSL support
*
STARTTLS
Opportunistic TLS (Transport Layer Security) refers to extensions in plain text communication protocols, which offer a way to upgrade a plain text connection to an encrypted (TLS or SSL) connection instead of using a separate port for encrypted c ...
support
*
SMTP
The Simple Mail Transfer Protocol (SMTP) is an Internet standard communication protocol for electronic mail transmission. Mail servers and other message transfer agents use SMTP to send and receive mail messages. User-level email clients typic ...
,
POP3
In computing, the Post Office Protocol (POP) is an application-layer Internet standard protocol used by e-mail clients to retrieve e-mail from a mail server. POP version 3 (POP3) is the version in common use, and along with IMAP the most comm ...
, and
IMAP
In computing, the Internet Message Access Protocol (IMAP) is an Internet standard protocol used by email clients to retrieve email messages from a mail server over a TCP/IP connection. IMAP is defined by .
IMAP was designed with the goal of pe ...
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
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
.
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
A web application firewall (WAF) is a specific form of application firewall that filters, monitors, and blocks HTTP traffic to and from a web service. By inspecting HTTP traffic, it can prevent attacks exploiting a web application's known vu ...
(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
PHP is a General-purpose programming language, general-purpose scripting language geared toward web development. It was originally created by Danish-Canadian programmer Rasmus Lerdorf in 1993 and released in 1995. The PHP reference implementati ...
, 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,
Perl
Perl is a family of two High-level programming language, high-level, General-purpose programming language, general-purpose, Interpreter (computing), interpreted, dynamic programming languages. "Perl" refers to Perl 5, but from 2000 to 2019 it ...
, 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 sapp ...
applications; other features include dynamic configuration, request routing, and load balancing.
History
Igor Sysoev
Igor Vladimirovich Sysoev () is a Russian software engineer. In October 2004 he released the Nginx Web server, reverse proxy, load balancer and HTTP cache software and founded Nginx, Inc.
Sysoev was born in 1970 and grew up in Almaty, Kaz ...
began development of Nginx in 2002.
Originally, Nginx was developed to solve the
C10k problem, 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 Wikip ...
s including the
Rambler 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 = Bri ...
.
In October 2011, Nginx, Inc. raised $3 million from
BV Capital
Headline, formerly e.ventures and BV Capital, is a global venture capital firm with an early-stage investment approach in the markets of Adtech, Commerce, Fintech, Media, Mobile and Software. It was founded in 1997 in Santa Barbara, California an ...
,
Runa Capital, and
MSD Capital
MSD Capital is an American private investment firm that manages the capital of Michael Dell and his family. The firm, which is based in New York and has offices in Santa Monica and West Palm Beach, was formed in 1998.
In 2009, the principals o ...
,
Michael Dell
Michael Saul Dell (born February 23, 1965) is an American billionaire businessman and philanthropist. He is the founder, chairman, and CEO of Dell Technologies, one of the world's largest technology infrastructure companies. He is ranked the ...
'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
New Enterprise Associates (NEA) is an American-based venture capital firm. NEA focuses investment stages ranging from seed stage through growth stage across an array of industry sectors. With ~$25 billion in committed capital, NEA is one of the w ...
.
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 Europe, 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. Sinc ...
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 & autho ...
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
A search warrant is a court order that a magistrate or judge issues to authorize law enforcement officers to conduct a search of a person, location, or vehicle for evidence of a crime and to confiscate any evidence they find. In most countr ...
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
Web server software allows computers to act as web servers. The first web servers supported only static files, such as HTML (and images), but now they commonly allow embedding of server side applications.
Some web application frameworks include s ...
*
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 ser ...
*
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