Nginx のキャッシュ メカニズムとパフォーマンス チューニング技術についての詳細な説明
はじめに:
今日の Web 開発では、高いパフォーマンスと高い同時実行性が追求されています。目標。高性能 Web サーバーとして、Nginx のキャッシュ メカニズムとパフォーマンス チューニング スキルは、Web サイトの負荷容量を向上させるために重要です。この記事では、Nginx のキャッシュ メカニズムとパフォーマンス チューニング手法について詳しく説明し、関連するコード例を示します。
1. Nginx のキャッシュ メカニズム
Nginx のキャッシュ メカニズムは、プロキシ キャッシュ モジュールを通じて実装されます。プロキシされたデータをローカルにキャッシュできるため、次回同じリクエストが来た場合、バックエンドサーバーにリクエストを送信することなく、データがキャッシュから直接読み取られます。これにより、バックエンド サーバーの負荷が大幅に軽減され、Web サイトの応答速度が向上します。
キャッシュを有効にする
Nginx のキャッシュ機能を有効にするには、まず次のコードを Nginx 構成ファイルに追加する必要があります:
http { ... proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off; proxy_temp_path /data/nginx/tmp; ... }
このコードでは、 proxy_cache_path
キャッシュ パスといくつかの関連パラメーターを定義します。このうち、levels
パラメータはキャッシュ パスに作成されるディレクトリ レベルを表し、keys_zone
パラメータはキャッシュされたインデックスと関連メタデータの保存に使用される共有メモリ領域を定義します。max_size
このパラメータは、キャッシュの最大サイズを定義します。inactive
パラメータは、一定期間アクセスされなかったキャッシュが期限切れであるとみなされることを示します。use_temp_path
パラメータキャッシュ ファイルを一時パスに置くかどうかを指定します。
キャッシュ ルールの構成
どのリクエストをキャッシュする必要があるかを指定するには、次のコードを Nginx 構成ファイルに追加できます:
http { ... location / { proxy_pass http://backend; proxy_cache my_cache; proxy_cache_valid 200 304 1h; } ... }
このコードでは、 proxy_pass
ディレクティブはプロキシ先のバックエンド サーバー アドレスを定義し、proxy_cache
は使用されるキャッシュ領域を指定し、proxy_cache_valid
はキャッシュされる HTTP ステータス コード 200 および 304 を定義します。時間。
キャッシュの更新とクリア
データのリアルタイム性と正確性を確保するために、キャッシュを手動で更新またはクリアする必要がある場合があります。次のコードを Nginx 構成ファイルに追加できます。
http { ... location /flush_cache { internal; proxy_cache_purge my_cache "$scheme$request_method$host$request_uri"; return 200 "Cache flushed successfully"; } ... }
このコードでは、location
でキャッシュを更新する URL を指定し、internal
ディレクティブでキャッシュを制限します。 request Nginx によって内部的にのみ呼び出すことができます。proxy_cache_purge
ディレクティブは、キャッシュをクリーンアップするために使用されます。
2. Nginx パフォーマンス チューニング テクニック
キャッシュ メカニズムに加えて、いくつかのパフォーマンス チューニング テクニックを通じて Nginx のパフォーマンスをさらに向上させることもできます。
ワーカー プロセスの同時接続数を増やす
Nginx では、デフォルトで構成されているワーカー プロセスの数が少なくなります。構成ファイルを変更することで、ワーカー プロセスの数を増やすことができます。同時接続数を増やすには:
worker_processes auto; events { worker_connections 4096; }
このコードでは、worker_processes
でワーカー プロセスの数を指定し、events
部分で同時接続の最大数を指定します。ワーカープロセスごとに。
TCP 接続とタイムアウト パラメータを構成する
TCP 接続とタイムアウト パラメータを適切に構成すると、Nginx のパフォーマンスを向上させることができます:
http { ... keepalive_timeout 65; keepalive_requests 100; send_timeout 2m; client_header_timeout 1m; ... }
このコードでは、 keepalive_timeout
は、クライアント接続がリクエストなしでアクティブな状態を維持する最大時間を定義します。 keepalive_requests
は、クライアント接続リクエストの最大数を定義します。 send_timeout
は、クライアントに応答を送信する最大時間を定義します。 , client_header_timeout
は、クライアント リクエスト ヘッダーを受信するまでの最大時間を定義します。
Gzip 圧縮を有効にする
Gzip 圧縮を有効にすると、転送されるデータ量が減り、ページの読み込み速度が向上します:
http { ... gzip on; gzip_disable "msie6"; gzip_types text/plain text/css application/json; ... }
このコードでは、 gzip
ディレクティブは Gzip 圧縮を有効にし、gzip_disable
は msie6
ブラウザ要求を圧縮しないことを指定し、gzip_types
は Gzip 圧縮を必要とする MIME タイプを指定します。
結論:
Nginx のキャッシュ メカニズムとパフォーマンス チューニング技術について徹底的に議論することで、Nginx をより深く理解し、適用し、Web サイトの負荷容量とユーザー エクスペリエンスを効果的に向上させることができます。 。キャッシュ メカニズムとパフォーマンス パラメーターを適切に構成し、実際の状況に応じてチューニングすることで、高パフォーマンスおよび高同時実行性の Web 開発でより良い結果を達成できます。この記事が読者のお役に立てば幸いです。
以上がNginx のキャッシュ メカニズムとパフォーマンス チューニング手法についての詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。