ホームページ >バックエンド開発 >PHPチュートリアル >Nginx で fastcgi キャッシュを構成する方法の紹介

Nginx で fastcgi キャッシュを構成する方法の紹介

不言
不言オリジナル
2018-08-07 13:58:402637ブラウズ

この記事では、Nginx での fastcgi キャッシュの設定方法を紹介します。参考になる内容です。困っている方は参考にしてください。お役に立てれば幸いです。

キャッシュメカニズム

Nginx は、プロキシ (プロキシ) ベースと fastcgi ベースの 2 つのキャッシュ方法を提供します。この 2 つの命令セットは非常に似ていますが、使用上の違いはありますが、大きな違いはありません。このブログはNginx PHP-FPMアーキテクチャを採用しているため、fastcgiベースのキャッシュ、つまりfastcgiキャッシュを使用しています。

Configuration

fastcgi キャッシュのメカニズムは、バックエンド CGI サービスによって返されたページをキャッシュすることです。後続のリクエストが来ると、そのページが直接返されます。バックエンド サービスと通信する必要がなく、ページを生成する消費も不要になります。 fastcgi キャッシュの原理は、squid、varnish、CDN などの原理と似ています。バックエンドのリクエストが削減されるため、原理的にはさまざまな WordPress キャッシュ プラグインよりもパフォーマンスが大幅に高くなります。

fastcgi キャッシュは fastcgi モジュールに属し、fastcgi モジュールは http モジュールに属するため、キャッシュ関連の設定はこれら 2 つおよび下位の設定ブロック (主に http、server、location) に表示される必要があります。

公式ドキュメントによると、ブログ サイトで使用されるキャッシュ構成は次のとおりです:

http {
  ...
  fastcgi_connect_timeout 30s;
  # 全局设置, fastcgi_cache_path只能出现在http配置块中
  # fastcgi_cache_path设置全局的缓存路径、文件大小等,可多次出现设置不同的缓存池
  fastcgi_cache_path /var/cache/nginx levels=1:2 keys_zone=WORDPRESS:10m inactive=10m max_size=500m;
  fastcgi_cache_key $scheme$request_method$host$request_uri;
  # 设置使用过期缓存的情形:后端错误、超时等
  fastcgi_cache_use_stale error timeout invalid_header http_500 http_503;
  ...
  server {
    ...
    # 缓存策略指示变量
    set $skip_cache 0;
    # 缓存策略
    if ($query_string != "") {
      set $skip_cache 1;
    }
    if ($request_uri ~* "/wp-admin/|/xmlrpc.php|wp-.*.php|/feed/|sitemap(_index)?.xml") {
      set $skip_cache 1;
    }
    # 登录用户或发表评论者
    if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
      set $skip_cache 1;
    }
    location ~ \.php$ {
      ...
      # 使用的keyzone,这里使用http中定义的WORDPRESS
      fastcgi_cache WORDPRESS;
      # 是否跳过缓存
      fastcgi_cache_bypass $skip_cache;
      fastcgi_no_cache $skip_cache;
      # 后端返回成功的情况下缓存10分钟
      fastcgi_cache_valid 200 10m;
      # 添加header字段,指示缓存命中状态(调试使用)
      add_header X-Cache $upstream_cache_status;
    }
  }
}

上記の構成は次のことを行います:

  1. キャッシュプール情報の設定 (fastcgi_cache_path );

  2. キャッシュキーの設定 (fastcgi_cache_key);

  3. 期限切れファイルの処理 (fastcgi_cache_use_stale)

  4. キャッシュ戦略 (fastcgi_cache_bypass/fastcgi_no_cache)

  5. バックエンド リクエストが成功したときのキャッシュ時間 (fastcgi_cache_valid)

  6. デバッグ情報ヘッダー (add_header) を追加しました。

#Nginx を再起動し、ページにアクセスしてヘッダーのステータスとページの応答時間を確認します。 1 つのリクエスト (

fastcgi_cache_min_uses で回数を設定可能) の後、後続のリクエストがキャッシュから行われ (X-Cache 値が HIT)、速度の向上が非常に明白であることがわかります。管理バックグラウンド ページの場合、x-cache の値は BYPASS であり、まさに必要なものです。

おすすめ関連記事:

Nginx 設定ファイル nginx.conf の操作手順

Nginx の Rewrite pseudo-static ルールの解説( 詳細) ### ############

以上がNginx で fastcgi キャッシュを構成する方法の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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