なんとなく、調べたいので調べます。
いつからあるか
enのwikipedia見てみましょう。
https://en.wikipedia.org/wiki/Nginx
The software was created by Igor Sysoev and first publicly released in 2004.
2004年に公式にリリースされたらしいです。
何をするものか
公式サイトを見て見ましょう。
https://nginx.org/en/
以下、引用。
nginx [engine x] is an HTTP and reverse proxy server,
a mail proxy server, and a generic TCP/UDP proxy server, originally written by Igor Sysoev.
For a long time, it has been running
on many heavily loaded Russian sites including Yandex, Mail.Ru, VK, and
Rambler. According to Netcraft, nginx served or proxied 23.76% busiest sites in March 2018.
Here are some of the success stories: Dropbox, Netflix, Wordpress.com, FastMail.FM.
- nginxはHTTPサーバーであり
- リバースプロキシのサーバーであり
- TCP / UDPのプロキシサーバーであり
- Yandex、Mail.Ru、VK、Ramblerとかロシアのサイトでよく使われていて
- Dropbox、Netflix、Wordpress.com、FastMail.FMとかでも使われている
なるほど。
似ているものはあるか
ざっくり、web serverでwikipediaで見てみる。
https://en.wikipedia.org/wiki/Web_server
と、この情報にたどり着いた
https://w3techs.com/technologies/overview/web_server/all
October 2017
Below are the latest statistics of the market share of all sites of the top web servers on
the Internet by W3Techs Usage of
Web Servers for Websites.
Product Vendor Percent
Apache Apache 48.5%
nginx NGINX, Inc. 35.4%
IIS Microsoft 10.8%
LiteSpeed Web Server LiteSpeed Technologies 2.9%
GWS Google 1.1%
All other web servers are used byless than1% of the websites.
Apache強いな。。ざっくりApacheとnginxだけ気にしとけば良いか…(雑)
IISは出くわしたら気にするレベルで良いだろう。。。うん。。
ただ、この情報が統計的にどの程度有意なのかわからない。
ということで、Apacheも知っておきたいところ。
Apache vs nginx
この記事がよくまとまっているように思う。勉強になった。
https://www.digitalocean.com/community/tutorials/apache-vs-nginx-practical-considerations
Apacheよりnginxの方が後発ということもあり優れている部分もあるが、一方でApacheの方が優れている部分もありそう。例えば、Apacheはモジュールの動的ロードが出来るが、nginxは出来ないのだそう。これは相性によってどちらを選ぶかということも考えたりとかがある気がする。
また、nginxをリバースプロキシにして、併用するパターンもよくあると。
さらっと読んだだけでは理解が足りないのでこの記事を何回か読み直したい。
nginxにある機能
先ほど書いたように、ざっくりは
- nginxはHTTPサーバー
- リバースプロキシのサーバー
- TCP / UDPのプロキシサーバー
ただ、機能もっと色々あった気がする。ので、調べると
https://www.nginx.com/products/nginx/#features
これが出てくる。
なんかこっちのサイトの方が今風だ。
- Load balancer
- Content cache
- Web server
- Security controls
- Dynamic modules
- Monitoring
- High availability (HA) *
- Kubernetes Ingress controller
- Programmability
- Streaming media
などが書いてある。機能というかfeatureである。
まとめ
ざっくり追いかけてみましたが、調べきれないので、おそらく続きます。