Celebrating 20 Years of NGINX

by

in

In the early 2000s, an exciting journey began – one that would shape the fabric of the internet as we know it today. For those of us who have been using NGINX since its early days, it’s been incredible to witness how an open source tool originally created to solve the C10K problem has grown into a cornerstone of modern web infrastructure.

Today, October 4, 2024, marks 20 years since NGINX’s first public release. Why October 4th? In a nod to space exploration, NGINX founder Igor Sysoev used key dates of historic missions as the release milestones for his products. This is why you’ll see April 12th and October 4th as repeating themes in NGINX’s timeline.

In this post, we’ll take you through this history of NGINX, our projects and products, and take a look at where we are today. Let’s start by going back to a time, before the dawn of NGINX, to understand the origin story…

The Origins of NGINX

In the 1990s, Igor Sysoev became an established engineer in computer system programming. He built several products, including an antivirus tool, then switched to web engineering in the early 2000s. The original idea for NGINX first came about in 2002. At the time, Igor was working for a large internet company and began noticing that their Apache web servers were unable to handle very high numbers of connections. The internet was going through a phase of explosive growth and many systems struggled with the C10K problem – how to handle more than 10,000 concurrent connections.

With his original ideas and experiments, Igor attempted to improve the performance of Apache through its modules. He initially tried to improve mod_proxy until quickly realizing it was better to create a new module. In Spring 2001, Igor created mod_accel. In the process, he made improvements to several other Apache modules.

Igor Sysoev Assesses the C10K Problem

Over the next year, Igor continued to assess the C10K problem and ways to optimize handling a large number of concurrent clients. He began to experiment with various operating system efficiency mechanisms and the development of NGINX as its own new software started in 2002.

During NGINX’s inception, Igor used new subsystems for events enabled in Unix to create an asynchronous event loop for handling HTTP requests. Coding in C for utmost portability, he installed pre-production versions of the software for a few local projects, and it immediately showed performance improvements over Apache.

In the second half of 2003, the first working prototype of NGINX was completed. Most of its architectural design and main functional modules were finalized, and pilot deployments to friendly websites began.

NGINX’s First Public Release

NGINX was released to the public on October 4th, 2004, aligned with the 47th anniversary of the first artificial satellite launch.

At the start, marketing was done by word-of-mouth. Engineers and sysadmins (we didn’t use the term “DevOps” back then) were sharing this newly found software between themselves and immediately started getting huge performance improvements for highly loaded systems.

Initial Deployments of NGINX

The most typical deployment of NGINX was placing it in front of an Apache server hosting PHP or other scripts. NGINX was serving static files, and proxying and buffering dynamic content of application servers. The efficient event loop made it possible to utilize hundreds of thousands of slow connections on the same server box – numbers that had never been seen before.

Between 2005 and 2006, improvements were made to HTTP and application-level proxy, load balancing, scripting, configuration, and event handling. The NGINX community also started to form. #nginx on Internet Relay Chat (IRC) was established as a community support channel for NGINX users and developers, providing a space for collaboration and troubleshooting.

NGINX Becomes Suitable for Production

In 2007, NGINX was generally considered suitable for production use and adoption continued to grow. Igor and other contributors added significant features such as caching and improved DNS support. Over the next few years, NGINX would be deployed at many US-based startups such as Bak, Dropbox, Justin.tv, Facebook, WordPress, Zappos, Scribd, Slideshare, LinkedIn, Mochimedia.

NGINX Gains Popularity and Offices Open

Between 2009 and 2010, NGINX continued to gain popularity in the open source community. On April 12, 2011, NGINX 1.0.0 was released on the 50-year anniversary of the first human in space. Then, Igor decided to start the company NGINX, Inc. and formalize the software development structure. He opened the first office in Moscow, later expanding to San Francisco, California.

Initially, NGINX, Inc. focused on the continuous development of NGINX while providing professional services and support for a few large internet companies. The first US employees started to work on investments, sales, and marketing, while engineers in Russia worked on the software, support, and services. In October 2011, NGINX, Inc. announced Series A funding and our first customer – Netflix – started using our services.

First Commercial Product Released

As time went on, the NGINX team found that traffic management software, rather than static web serving, had a better chance of commercial success. In 2013, NGINX released its first commercial product, NGINX Plus. With this commercial release, we focused on load balancing enhancements, dynamic configuration, and monitoring – the most requested features for our customers. Meanwhile, the open-source core development team focused on making it possible for community and third-party developers to write dynamically loaded modules for NGINX and NGINX Plus.

When we launched our first commercial release, we ensured that fundamental features remained open and the free version of NGINX experienced no performance slowdowns. Mainly traffic management and monitoring functionality were designated as commercial, allowing open source users to continue using their version of NGINX, scale it to any project size, and modify it as needed. As a result, some open source users developed their own forks of NGINX, while others built entirely new projects and ecosystems.

NGINX Continues to Expand

In 2014, NGINX secured Series B funding, and we rapidly expanded our San Francisco headquarters and regional offices. During this period, the sales and marketing teams grew from a handful of first-hire employees into a well-structured startup. Meanwhile, the engineering team shifted its focus from a single product to building a multi-product company.

New Products and Major Features Announced

In these five years, NGINX announced and released several new products and major features:

  • September 22, 2015: Support for HTTP/2
    The new version of the HTTP protocol took a long time to develop, both within NGINX and across the broader community. During development, the protocol received mixed feedback from engineers. However, when applied correctly, it significantly improved real-world web page loading for millions of people. For many website owners, the addition of HTTP/2 became a key reason to switch to NGINX from legacy systems.

  • September 28, 2015: NGINX JavaScript (njs)
    The programmability of NGINX configurations was a major factor for various companies to invest in NGINX as their primary data plane solution. Larger organizations needed a safe and performant method to expand the standard, rigid configurations into more dynamic setups suited for modern application environments. njs (initially called nginScript) was developed and later became the standard method of adapting configurations to cloud-native and rapidly evolving environments.

  • November 17, 2015: NGINX Amplify
    The Amplify team pioneered NGINX’s transition from a single-product company to a multi-product organization by creating a SaaS-based monitoring solution with built-in configuration recommendations. This small engineering team established the framework for future control plane development. Today, almost a decade later, NGINX Amplify’s fundamental monitoring capabilities continue to provide value to thousands of NGINX users worldwide.

  • March 9, 2016: NGINX Ingress Controller
    Containerization and cloud environments were always native to NGINX. Its small binary size and unmatched portability made NGINX a natural fit for containers and Kubernetes environments. After its release, NGINX Ingress Controller quickly became the preferred method to configure application delivery inside what were, at the time, relatively new and lesser-known Kubernetes clusters.

  • September 6, 2017: NGINX Unit
    As dynamic scalability became a norm for more and more NGINX users, it was clear that the world needed new methods of server configuration and fewer layers of traffic processing inside applications. Igor Sysoev began working on a new server core, which led to the release of NGINX Unit – a new dynamically configured web and application server. NGINX Unit was released with support for running applications in PHP, Python, and Go, soon expanding to a long list of application languages and frameworks.

Additional Growth for NGINX

These products and features marked a pivotal period of expansion for NGINX. In February 2017, increased funding and our growing business led to opening a regional sales and engineering office in Cork, Ireland – officially opened by Taoiseach Enda Kenny. Following our European headquarters, new outposts in Singapore and Sydney also expanded NGINX’s global reach.

With Series C funding secured in June 2018, we were ready to accelerate our mission to help enterprises adopt microservices and modernize their approach to application development.

NGINX Acquired by F5, Inc.

The next chapter of NGINX’s history began with its acquisition by F5, announced in March 2019 and finalized in May of the same year. Integrating NGINX into F5’s ecosystem required significant effort from our small startup team. During this period, NGINX expanded its software offerings into F5’s customer base, while many F5 engineers learned about NGINX and switched to full-time NGINX development.

NGINX engineering increased its focus on management plane tools and products, releasing a range of tools for application delivery, API management, and security. Plenty of these tools can be found in F5’s product portfolio.

Meanwhile, NGINX’s programmability features continued to expand, with significant improvements to the njs module. In 2021, the addition of Async/Await and the Fetch API provided developers with greater flexibility and control.

HTTP/3 Support Added

On the core development side, another major milestone was the development of HTTP/3 support. Implementing the new version of the HTTP protocol and developing the new UDP-based transport layer (QUIC) required a lot of effort from our engineers. However, the versatility of NGINX’s core made it possible without a server redesign. The official HTTP/3 release came on May 23rd, 2023, after a long-running technology preview in a development branch.

New Milestones for NGINX

And all of this brings us to where NGINX is today! In September 2024, the original project, now called NGINX Open Source, moved to GitHub. With this move, NGINX now accepts contributions through Pull Requests and uses the Issues tab to track bug reports, feature requests, and enhancements.

On the commercial side, September 2024 also marked F5’s launch of NGINX One, a unified SaaS solution that combines NGINX’s core capabilities for security, availability, observability, and scalability of modern applications and APIs. This new release integrates advanced load balancing, application server functions, API management, and security features into a single management interface, enabling the administration of both NGINX Open Source and NGINX Plus instances.

All of these milestones could only be possible with the support of our community of users and contributors. Thank you for being a vital part of our two decade journey!