Nginx は、優れた HTTP キャッシュとセキュリティ性能により、高性能な Web サーバーおよびリバース プロキシ サーバー ソフトウェアです。この記事では、Nginx の HTTP キャッシュとセキュリティ パフォーマンスの 2 つの側面から Nginx のパフォーマンスを最適化する方法を詳しく紹介します。
1. HTTP キャッシュの最適化
HTTP キャッシュは Web パフォーマンス最適化の重要な手段の 1 つであり、Web アプリケーションの応答速度とユーザー エクスペリエンスを大幅に向上させることができます。 Nginx では、HTTP キャッシュを構成することで Web サイトのパフォーマンスを向上させることができます。
静的リソースには、CSS、JavaScript、画像などが含まれます。これらのリソースのコンテンツは頻繁には変更されないことが多いため、キャッシュして容量を減らすことができます。クライアントの対話、サーバー間のリクエスト。 Nginx では、expires ディレクティブを使用してキャッシュの有効期限を制御できます。例:
location /static/ { expires 30d; }
は、/static/ ディレクトリ内の静的リソースが 30 日後に期限切れになることを意味します。
動的ページのコンテンツはリクエスト パラメーターや Cookie などに基づいて動的に生成できるため、次のようにクライアントに直接キャッシュすることはできません。静的リソース。ただし、動的ページをサーバー側でキャッシュすることができ、次回同じリクエストがあった場合には、キャッシュされた結果が直接返されるため、ページの再生成を回避できます。 Nginx では、proxy_cache ディレクティブを使用してキャッシュを構成できます。例:
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m; server { location / { proxy_cache my_cache; proxy_pass http://backend; } }
ここでは、my_cache という名前のキャッシュ領域を設定し、キャッシュ結果を /var/cache/nginx ディレクトリに保存します。次に、その場所で proxy_cache ディレクティブを構成して、キャッシュを有効にします。
キャッシュ ネゴシエーション メカニズムとは、クライアントがリソースを要求するときに、最初に If-Modified-Since 条件または If-None-Match 条件を送信することを意味します。サーバーにリクエストするときに、キャッシュされたリソースが変更されていない場合、サーバーは 304 Not Modified ステータス コードを返し、クライアントはキャッシュされたリソースを引き続き使用できるため、帯域幅と応答時間が短縮されます。 Nginx では、proxy_cache_revalidate ディレクティブを使用してキャッシュ ネゴシエーション メカニズムを有効にすることができます。例:
location / { proxy_cache my_cache; proxy_cache_revalidate on; proxy_pass http://backend; }
ここでは、proxy_cache_revalidate ディレクティブを location に追加するだけです。
2. セキュリティ パフォーマンスの最適化
セキュリティ パフォーマンスの最適化とは、Web アプリケーションのセキュリティを確保しながら、アプリケーションのパフォーマンスを可能な限り向上させることを指します。高性能 Web サーバーおよびリバース プロキシ サーバー ソフトウェアとして、Nginx はアプリケーションの高いパフォーマンスを保証するだけでなく、アプリケーションのセキュリティも保証する必要があります。
HTTPS は HTTP プロトコルの拡張であり、SSL/TLS プロトコルを使用してデータの暗号化と復号化を行い、データの安全な送信を実現します。 Nginx では、ssl_certificate ディレクティブと ssl_certificate_key ディレクティブを使用して SSL 証明書と秘密キーを構成できます。例:
server { listen 443 ssl; server_name example.com; ssl_certificate /path/to/cert.pem; ssl_certificate_key /path/to/key.pem; location / { ... } }
Web アプリケーションにおける一般的な攻撃手法には、SQL インジェクション、クロスサイト スクリプティング攻撃 (XSS)、クロスサイト リクエスト フォージェリなどがあります。 (CSRF) 待ってください。 Nginx では、モジュールを使用してこれらの攻撃を防御できます。
(1) SQL インジェクション
SQL インジェクションとは、攻撃者が特別な SQL ステートメントを構築することでアプリケーションの認証および認可メカニズムをバイパスするか、悪意のある SQL ステートメントを直接実行することにより、データ漏洩や腐敗。 Nginx では、HttpSqlInjectionModule モジュールを使用して SQL インジェクションを防御できます。例:
location / { sql_injection on; ... }
(2) XSS 攻撃
XSS 攻撃とは、攻撃者がユーザーの機密情報を取得したり、ユーザーのブラウザを制御したりするために、悪意のあるスクリプトを Web ページに挿入することを意味します。 Nginx では、HttpXssModule モジュールを使用して XSS 攻撃を防御できます。例:
location / { xss on; ... }
(3) CSRF 攻撃
CSRF 攻撃とは、攻撃者がユーザーになりすまして、信頼された Web アプリケーションで不正な操作を実行し、損害を引き起こすことを指します。 Nginx では、HttpCsrfModule モジュールを使用して CSRF 攻撃を防御できます。例:
location / { csrf on; ... }
要約すると、この記事では、Nginx の HTTP キャッシュとセキュリティ パフォーマンスの 2 つの側面から Nginx のパフォーマンスを最適化する方法を詳しく紹介します。 HTTP キャッシュを適切に使用することで、アプリケーションの応答速度とユーザー エクスペリエンスを向上させることができ、SSL 証明書とモジュールを使用することで、アプリケーションのセキュリティを確保し、さまざまな攻撃を防御することができます。
以上がNginx での HTTP キャッシュとセキュリティ パフォーマンスの最適化の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。