nginx
基本的な HTTP サーバー機能 その他の HTTP サーバー機能 メールプロキシサーバー機能 TCP/UDP プロキシサーバー機能 アーキテクチャとスケーラビリティ テスト済みの OS およびプラットフォーム |
nginx(「engine x」)は、HTTP Webサーバー、リバースプロキシ、コンテンツキャッシュ、ロードバランサー、TCP/UDPプロキシサーバー、およびメールプロキシサーバーです。もともとIgor Sysoevによって作成され、2条項BSDライセンスの下で配布されています。
柔軟性と、低リソース使用量での高いパフォーマンスで知られるnginxは、
- 世界で最も人気のあるWebサーバーです[Netcraft]。
- 常に最も人気のあるDockerイメージの1つです[DataDog]。
- 複数のKubernetesのIngressコントローラー(独自のものを含む)を強化しています。
エンタープライズ版、商用サポートおよびトレーニングは、F5, Inc.から入手可能です。
基本的な HTTP サーバー機能
- 静的ファイルおよびインデックスファイルの提供、自動インデックス。オープンファイル記述子キャッシュ。
- キャッシュによる高速化されたリバースプロキシ。ロードバランシングと耐障害性。
- FastCGI、uwsgi、SCGI、およびmemcachedサーバーのキャッシュによる高速化されたサポート。ロードバランシングと耐障害性。
- モジュラーアーキテクチャ。フィルターには、gzip圧縮、バイト範囲、チャンク応答、XSLT、SSI、および画像変換フィルターが含まれます。プロキシまたはFastCGI/uwsgi/SCGIサーバーによって処理される場合、単一ページ内の複数のSSIインクルージョンを並行して処理できます。
- SSLおよびTLS SNIのサポート;
- 重み付けと依存関係に基づく優先順位付けによるHTTP/2のサポート。
- HTTP/3のサポート。
その他の HTTP サーバー機能
- 名前ベースおよびIPベースの仮想サーバー。
- Keep-aliveおよびパイプライン接続のサポート。
- アクセスログ形式、バッファリングされたログ書き込み、高速ログローテーション、およびsyslogロギング。
- 3xx〜5xxエラーコードのリダイレクト。
- リライトモジュール:正規表現を使用したURI変更。
- クライアントアドレスに応じて、異なる関数を実行します。
- クライアントIPアドレス、パスワード(HTTP基本認証)、およびサブリクエストの結果に基づくアクセス制御。
- HTTPリファラーの検証。
- PUT、DELETE、MKCOL、COPY、およびMOVEメソッド。
- FLVおよびMP4ストリーミング。
- 応答レート制限;
- 1つのアドレスからの同時接続またはリクエストの数の制限。
- IPベースのジオロケーション;
- A/Bテスト;
- リクエストミラーリング;
- 埋め込みPerl。
- njsスクリプト言語。
メールプロキシサーバー機能
- 外部HTTP認証サーバーを使用したIMAPまたはPOP3サーバーへのユーザーリダイレクト。
- 外部HTTP認証サーバーを使用したユーザー認証と、内部SMTPサーバーへの接続リダイレクト。
- 認証方法
- SSLのサポート。
- STARTTLSおよびSTLSのサポート。
TCP/UDP プロキシサーバー機能
- TCPおよびUDPの汎用プロキシ。
- TCPのSSLおよびTLSSNIのサポート。
- ロードバランシングと耐障害性;
- クライアントアドレスに基づくアクセス制御。
- クライアントアドレスに応じて、異なる関数を実行します。
- 1つのアドレスからの同時接続の数の制限。
- アクセスログ形式、バッファリングされたログ書き込み、高速ログローテーション、およびsyslogロギング。
- IPベースのジオロケーション;
- A/Bテスト;
- njsスクリプト言語。
アーキテクチャとスケーラビリティ
- 1つのマスタープロセスと複数のワーカープロセス。ワーカープロセスは、権限のないユーザーで実行されます。
- 柔軟な構成;
- クライアントサービスの中断なしに、再構成と実行可能ファイルのアップグレード。
- kqueue(FreeBSD 4.1以降)、epoll(Linux 2.6以降)、/dev/poll(Solaris 7 11/99以降)、event ports(Solaris 10)、select、およびpollのサポート。
- EV_CLEAR、EV_DISABLE(一時的にイベントを無効にする)、NOTE_LOWAT、EV_EOF、利用可能なデータ数、エラーコードを含む、さまざまなkqueue機能のサポート。
- EPOLLRDHUP(Linux 2.6.17以降、glibc 2.8以降)およびEPOLLEXCLUSIVE(Linux 4.5以降、glibc 2.24以降)を含む、さまざまなepoll機能のサポート。
- sendfile(FreeBSD 3.1以降、Linux 2.2以降、macOS 10.5以降)、sendfile64(Linux 2.4.21以降)、およびsendfilev(Solaris 8 7/01以降)のサポート。
- ファイルAIO(FreeBSD 4.3以降、Linux 2.6.22以降)。
- DIRECTIO(FreeBSD 4.4以降、Linux 2.4以降、Solaris 2.6以降、macOS)。
- Accept-filters(FreeBSD 4.1以降、NetBSD 5.0以降)およびTCP_DEFER_ACCEPT(Linux 2.4以降)のサポート。
- 10,000個の非アクティブなHTTP keep-alive接続は約2.5Mのメモリを使用します。
- データコピー操作は最小限に抑えられています。
テスト済みの OS およびプラットフォーム
- FreeBSD 3〜12 / i386。FreeBSD 5〜12 / amd64。FreeBSD 11 / ppc。FreeBSD 12 / ppc64。
- Linux 2.2〜4 / i386。Linux 2.6〜5 / amd64。Linux 3〜4 / armv6l、armv7l、aarch64、ppc64le。Linux 4〜5 / s390x。
- Solaris 9 / i386、sun4u。Solaris 10 / i386、amd64、sun4v。Solaris 11 / x86。
- AIX 7.1 / powerpc。
- HP-UX 11.31 / ia64。
- macOS / ppc、i386、x86_64。
- Windows XP、Windows Server 2003、Windows 7、Windows 10、Windows 11。