**Nginx** (lausutaan kuten "engine-x") on WWW- ja proxy-palvelin, jota voi käyttää myös muun muassa reverse proxyna, load balancerina ja cachena. Igor Sysojevin kehittämä ohjelmisto julkaistiin vuonna 2004, ja yritys Nginx Inc. perustettiin vuonna 2011.

Nginx OSS on avoimen lähdekoodin ohjelmisto, joka on julkaistu BSD-lisenssillä. Nginx Plus puolestaan on OSS:lle perustuva maksullinen, tuettu ja ominaisuuksiltaan monipuolisempi versio. 

Netcraft arvioi elokuussa 2019, että 32 % kaikista aktiivisista nettisivuista käyttää Nginxiä palvelimenaan. Nginxin ollessa suosituin palvelin Apache sijoittui toiselle sijalle 29 %:n suosiollaan.

Kehitys
-------

Nginxin kehityksessä tavoitteena oli parempi suorituskyky kuin Apachella.

Nginx kehitettiin alun perin hakukone ja verkkoportaali Rambler.ru:n palvelimeksi. Ensimmäinen versio julkaistiin syksyllä 2004. Myöhemmin sen ovat ottaneet käyttöön myös Yandex, Mail.Ru ja VK.
Kehittäjät ovat saaneet tukea myös pääomasijoittajilta, kuten Michael Dellin MSD Capitalilta.

Maaliskuussa 2019 F5 Networks ilmoitti ostavansa NGINX Inc.:in 670 miljoonalla dollarilla, ja yrityskauppa toteutui saman vuoden toukokuussa. 

Joulukuussa 2019 poliisi ratsasi Nginx:n Moskovan toimistot, koska Rambler Group katsoo ohjelmiston kuuluvan itselleen ja Nginx:n rikkovan yhtiön oikeuksia. Sysojev oli työssä Ramblerilla 2000-luvun alussa ja perusti oman yhtiönsä jätettyään Ramblerin.

F5 sulki toimistonsa Moskovassa 2022. Venäläiset kehittäjät jäivät kehittämään ohjelmistoa vapaaehtoispohjalta. Myöhemmin F5 teki kyseenalaisia muutoksia palvelimeen. Maksim Dounin päätti forkata projektin ja alkoi kehittää uutta Freenginx-versiota.
Nginx-palvelimesta on aiemmin tehty Angie-niminen forkki, jota kehittää venäläinen taho.

Tekniikka
---------

Nginx käyttää arkkitehtuurissaan tapahtumasilmukkaa (*event loop*) ja työläisprosesseja (*worker process*). Pääprosessi tekee tehtäviä kuten lukee konfiguraation, sitoo portteihin ja käynnistää työläisprosesseja. Työläiset käsittelevät yhteyksiä, lukevat ja kirjoittavat tietoja, ja kommunikoivat muiden palvelimien kanssa. Työläisprosessit ovat yksisäikeisiä. Jokainen työläisprosessi käsittelee useita yhteyksiä.

nginx tukee esim. PHP:ta PHP FastCGI Process Managerin (PHP-FPM) avulla, jolloin se keskustelee erillisen koko ajan käynnissä olevan PHP-FPM-prosessin kanssa Unix domain socketin kautta.

Kilpailijat
-----------

Nginx kehitettiin korvaamaan Apache-palvelin ja tarkoitus oli parempi suurien määrien yhtäaikaisien pyyntöjen käsittely. Vuonna 2012 julkaistu Apachen 2.4 -versio kuitenkin kuroi umpeen Nginxin etumatkan suorituskyvyssä, ja Nginxin ja Apachen suorituskyky ovat samankaltaiset.

Nginx korvasi Apachen OpenBSD:n versiossa 5.2 mutta sen korvasi OpenBSD:n oma httpd versiossa 5.7.

Cloudflare on kehittänyt Rust-kielellä kirjoitetun Pingoran, jolla se on korvannut Nginxin saadakseen paremman suorituskyvyn. Pingora on avointa lähdekoodia vuodesta 2024 alkaen.

Dropbox-yhtiö siirtyi Nginx:stä Envoy-palvelimelle. Myös Envoyn arkkitehtuuri on tapahtumapohjainen kuten Nginx:n, mutta Envoy on monisäikeinen. Myös tapahtumakäsittelyssä on eroja ja Envoy ei pysähdy odottamaan samoin.

Lähteet
-------

1. ↑
2. 1 2  nginx *nginx.org*.
3. ↑  NGINX Plus Nginx.
4. ↑  Palvelintutkimus, elokuu 2019 Netcraft.
5. ↑  Owen Garrett: NGINX vs. Apache: Our View of a Decade-Old Question *nginx.com*.  9.10.2015. Viitattu 28.9.2022. (englanniksi)
6. ↑  Funding from BV Capital, Runa Capital, and MSD Capital Fuels NGINX’s Commercial Plans and New U.S. Presence Nginx.
7. ↑  F5 Completes Acquisition of NGINX *f5.com*.
8. ↑  Cops storm Nginx's Moscow offices after a Russian biz claims it owns world's most widely used web server, not F5  12.12.2019. The Register.
9. ↑
10. ↑  Liam Proven: Nginx web server forked as Freenginx to escape corporate overlords *theregister.com*.  16.2.2024. Viitattu 17.2.2024. (englanniksi)
11. ↑  Mehul Mohan: Nginx Internals: An In-Depth Look at Connection Processing *codedamn.com*.  26.3.2023. Viitattu 13.3.2024. (englanniksi)
12. ↑  Understanding NGINX *solo.io*. Viitattu 13.3.2024. (englanniksi)
13. ↑
14. ↑
15. ↑  Owen Garrett: NGINX vs. Apache: Our View of a Decade-Old Question *nginx.com*.  9.10.2015. Viitattu 17.2.2024. (englanniksi)
16. ↑  Will Reese: Nginx: the High-Performance Web Server and Reverse Proxy *linuxjournal.com*.  1.9.2008. Viitattu 17.2.2024. (englanniksi)
17. ↑  Apache httpd 2.4 *people.apache.org*.
18. ↑  Picking a Proxy Server *slideshare.net*.  14 April 2014.
19. ↑  Upgrade Guide: 5.1 to 5.2 *openbsd.org*. Viitattu 18.2.2024. (englanniksi)
20. ↑  Upgrade Guide: 5.6 to 5.7 *openbsd.org*. Viitattu 18.2.2024. (englanniksi)
21. ↑  Yuchen Wu & Andrew Hauck: How we built Pingora, the proxy that connects Cloudflare to the Internet *blog.cloudflare.com*.  14.9.2022. Viitattu 28.9.2022. (englanniksi)
22. ↑
23. ↑  Alexey Ivanov & Oleg Guba: How we migrated Dropbox from Nginx to Envoy *dropbox.tech*.  30.7.2020. Viitattu 13.3.2024. (englanniksi)

Aiheesta muualla
----------------

* Virallinen sivusto
* Nginx, Inc.