Nginx Web サービスを最適化するための推奨事項と考慮事項
Nginx Web サービスを最適化できるいくつかの提案と考慮事項を次に示します。
-
gzip 圧縮を有効にする: gzip 圧縮を有効にすると、HTTP 応答量が削減され、ページの読み込み速度が向上し、同時にサーバーの負荷が軽減されます。gzip 圧縮モジュールを有効にし
nginx.conf
(デフォルトで有効になっています)、適切なパラメータを設定します。 -
HTTP キャッシュを使用する: キャッシュを適切に構成すると、サーバーの負荷が軽減され、ユーザーのアクセス速度が向上します。応答タイプ、リクエストタイプ、リクエストヘッダー、その他の条件に応じてさまざまなキャッシュ戦略を構成でき、ビジネスニーズに応じてキャッシュ時間を設定できます。
-
リクエスト レートを制限する: 悪意のあるリクエストはサーバー リソースを大量に消費する可能性があるため、Nginx
limit_req
とlimit_conn
モジュールを使用してリクエスト レートと同時接続数を制限し、悪用や攻撃を防ぐことができます。 -
冗長モジュールを回避する: Nginx をコンパイルするときに必要なモジュールを選択して、不要なモジュールがシステム リソースを占有することを回避し、潜在的なセキュリティ リスクも軽減します。
-
リバース プロキシの構成: Nginx のリバース プロキシ機能を使用してリクエストをさまざまなサーバーに分散し、負荷分散と高可用性を実現します。さまざまなビジネスに応じて、さまざまなリバース プロキシ戦略を実装できます。
-
HTTP/2 のサポート: HTTP/1.1 と比較して、HTTP/2 にはパフォーマンスとセキュリティの点で大きな利点があります。Nginx は HTTP/2 をサポートしており、次の手順で有効にできます。
-
nginx.conf
HTTP/2 モジュールを有効にします。平文コードをコピー
listen 443 ssl http2;
-
HTTP/2 では HTTPS プロトコルを使用する必要があるため、SSL/TLS を構成します。
-
-
長時間実行される単一リクエストを避ける: 長時間実行される単一リクエストはサーバー リソースを占有しすぎる可能性があるため、適切なタイムアウトを設定することをお勧めします
proxy_read_timeout
。 -
CDN を使用する: CDN を使用すると、画像、静的リソースなどの読み込みが高速化され、サーバーの負荷が軽減されます。静的リソースは CDN プラットフォームでホストでき、適切なリバース プロキシ ルールを Nginx で設定できます。
-
適切なログ レベルを設定する: アクセス ログとエラー ログを適切に記録すると、その後の分析とトラブルシューティングが容易になりますが、一定のシステム IO 負荷も生成されます。不必要なログを避けるために、適切なログ レベルを設定することをお勧めします。
上記は、Nginx Web サービスを最適化するためのいくつかの提案と注意事項ですが、具体的な最適化計画は、さまざまなビジネス ニーズやサーバー構成に応じて調整する必要があります。