1.20.0 年間の開発を経て、高性能 HTTP サーバーおよびマルチプロトコル プロキシ サーバーの新しい安定したブランチ nginx 1.19 が導入されました。これには、メイン ブランチ 1.20.x に蓄積された変更が組み込まれています。 将来的には、安定版ブランチ 1.21 のすべての変更は、重大なエラーと脆弱性の排除に関連することになります。 間もなく nginx XNUMX のメイン ブランチが形成され、そこで新機能の開発が続けられます。 サードパーティのモジュールとの互換性を確保する必要がない一般ユーザーの場合は、メイン ブランチを使用することをお勧めします。これに基づいて、商用製品 Nginx Plus のリリースが XNUMX か月ごとに形成されます。
Netcraft の 20.15 月のレポートによると、nginx はすべてのアクティブ サイトの 19.56% (20.73 年前は 25.38%、27.64 年前は 10.09%) で使用されており、これはこのカテゴリで人気 8.51 位に相当します (Apache のシェアは 35.34% に相当します)。 (36.91 年前 27.52%)、Google - 25.98%、Cloudflare - 6.55% 同時に、すべてのサイトを考慮すると、nginx がリーダーシップを維持し、市場の 5.96% を占めています (XNUMX 年前 XNUMX%、XNUMX 年前 - XNUMX%)、Apache のシェアは XNUMX%、OpenResty (nginx と LuaJIT に基づくプラットフォーム) - XNUMX%、Microsoft IIS - XNUMX% に相当します。
世界で最もアクセス数の多いサイト 25.55 万件のうち、nginx のシェアは 25.54% (26.22 年前は 419%、459 年前は 3%) です。 現在、約 33.7 億 31.9 万の Web サイトが Nginx を実行しています (41.8 年前は 39.5 億 34 万)。 W8.3Techs によると、最も訪問された 7 万サイトのうち、nginx は 6.3% のサイトで使用されています。昨年 8.4 月のこの数字は 0.8%、前年は 1.2% でした (この減少は、Cloudflare http の個別会計への移行によって説明されています)サーバ)。 Apache のシェアは 79.1 年間で 78.9% から XNUMX% に低下し、Microsoft IIS のシェアは XNUMX% から XNUMX% に低下しました。 LiteSpeed のシェアは XNUMX% から XNUMX% に、Node.js は XNUMX% から XNUMX% に増加しました。 ロシアでは、最もアクセス数の多いサイトの XNUMX% で nginx が使用されています (XNUMX 年前 - XNUMX%)。
1.19.x アップストリーム ブランチの開発中に追加された最も注目すべき改良点は次のとおりです。
- OCSP (Online Certificate Status Protocol) プロトコルに基づく外部サービスを使用してクライアント証明書を検証する機能が追加されました。 このチェックを有効にするために、キャッシュ サイズ (ssl_ocsp_cache) を構成し、証明書で指定されている OCSP ハンドラーの URL (ssl_ocsp_responder) を再定義する ssl_ocsp ディレクティブが提案されています。
- ngx_stream_set_module モジュールが含まれており、変数server { listen 12345; に値を割り当てることができます。 $true 1 を設定します。 }
- プロキシ接続で Cookie のフラグを指定するための proxy_cookie_flags ディレクティブを追加しました。 たとえば、Cookie「one」に「httponly」フラグを追加し、他のすべての Cookie に「nosecure」フラグと「samesite=strict」フラグを追加するには、次の構造を使用できます。 proxy_cookie_flags ~ nosecure Samesite=strict;
Cookie にフラグを追加するための同様の userid_flags ディレクティブも、ngx_http_userid モジュールに実装されています。
- OpenSSL を構成するための任意のパラメーターを設定できるディレクティブ「ssl_conf_command」、「proxy_ssl_conf_command」、「grpc_ssl_conf_command」、「uwsgi_ssl_conf_command」が追加されました。 たとえば、ChaCha 暗号と TLSv1.3 暗号の詳細構成に優先順位を付けるには、ssl_conf_command オプション PrioritizeChaCha を指定できます。 ssl_conf_command 暗号スイート TLS_CHACHA20_POLY1305_SHA256;
- 「ssl_reject_handshake」ディレクティブを追加しました。これは、SSL 接続をネゴシエートするすべての試行を拒否するように指示します (たとえば、SNI フィールドで不明なホスト名を持つすべての呼び出しを拒否するために使用できます)。 サーバー { 443 SSL をリッスンします。 ssl_reject_handshake オン; } サーバー { 443 SSL をリッスンします。 サーバー名 example.com; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; }
- proxy_smtp_auth ディレクティブがメール プロキシに追加され、AUTH コマンドと PLAIN SASL メカニズムを使用してバックエンドでユーザーを認証できるようになりました。
- 「keepalive_time」ディレクティブを追加しました。これは、各キープアライブ接続の合計有効期間を制限し、その後接続が閉じられます (キープアライブ接続が閉じられるまでの非アクティブ時間を定義する keepalive_timeout と混同しないでください)。
- $connection_time 変数を追加しました。これにより、ミリ秒の精度で秒単位の接続継続時間に関する情報を取得できます。
- 「min_free」パラメータが「proxy_cache_path」、「fastcgi_cache_path」、「scgi_cache_path」、および「uwsgi_cache_path」ディレクティブに追加されました。これは、空きディスク領域の最小サイズの決定に基づいてキャッシュ サイズを調整します。
- 「lingering_close」、「lingering_time」、および「lingering_timeout」ディレクティブは、HTTP/2 で動作するように調整されています。
- HTTP/2 の接続処理コードは HTTP/1.x 実装に似ています。 個々の設定「http2_recv_timeout」、「http2_idle_timeout」、および「http2_max_requests」のサポートは廃止され、一般的なディレクティブ「keepalive_timeout」および「keepalive_requests」が優先されます。 設定「http2_max_field_size」と「http2_max_header_size」は削除され、代わりに「large_client_header_buffers」を使用する必要があります。
- 新しいコマンド ライン オプション「-e」が追加されました。これにより、エラー ログを書き込むための代替ファイルを指定できます。このファイルは、設定で指定されたログの代わりに使用されます。 ファイル名の代わりに、特別な値 stderr を指定できます。
出所: オープンネット.ru