ホームページ >運用・保守 >Nginx >Nginx での HTTP キャッシュとセキュリティ パフォーマンスの最適化

Nginx での HTTP キャッシュとセキュリティ パフォーマンスの最適化

王林
王林オリジナル
2023-06-10 11:00:201418ブラウズ

Nginx は、優れた HTTP キャッシュとセキュリティ性能により、高性能な Web サーバーおよびリバース プロキシ サーバー ソフトウェアです。この記事では、Nginx の HTTP キャッシュとセキュリティ パフォーマンスの 2 つの側面から Nginx のパフォーマンスを最適化する方法を詳しく紹介します。

1. HTTP キャッシュの最適化

HTTP キャッシュは Web パフォーマンス最適化の重要な手段の 1 つであり、Web アプリケーションの応答速度とユーザー エクスペリエンスを大幅に向上させることができます。 Nginx では、HTTP キャッシュを構成することで Web サイトのパフォーマンスを向上させることができます。

  1. 静的リソースのキャッシュ

静的リソースには、CSS、JavaScript、画像などが含まれます。これらのリソースのコンテンツは頻繁には変更されないことが多いため、キャッシュして容量を減らすことができます。クライアントの対話、サーバー間のリクエスト。 Nginx では、expires ディレクティブを使用してキャッシュの有効期限を制御できます。例:

location /static/ {
    expires 30d;
}

は、/static/ ディレクトリ内の静的リソースが 30 日後に期限切れになることを意味します。

  1. 動的ページのキャッシュ

動的ページのコンテンツはリクエスト パラメーターや 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 ディレクティブを構成して、キャッシュを有効にします。

  1. キャッシュ ネゴシエーション メカニズムを使用する

キャッシュ ネゴシエーション メカニズムとは、クライアントがリソースを要求するときに、最初に 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 はアプリケーションの高いパフォーマンスを保証するだけでなく、アプリケーションのセキュリティも保証する必要があります。

  1. HTTPS 暗号化通信

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 / {
        ...
    }
}
  1. HTTP 防御攻撃

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。