Nginx キャッシュ
nginx には、fastcgi_cache と proxy_cache という 2 つのキャッシュ メカニズムがあります。
これら 2 つのキャッシュ メカニズムの違いについて説明しましょう
proxy_cacheその機能は、バックエンド サーバーのコンテンツ (任意のコンテンツである可能性があります) をキャッシュすることです。静的および動的
fastcgi_cacheを含む機能は、fastcgiによって生成されたコンテンツをキャッシュすることです。多くの場合、phpによって生成された動的コンテンツ
proxy_cacheキャッシュは、nginxとバックエンド間の通信の数を減らし、送信時間とバックエンドの帯域幅を節約します
fastcgi_cacheキャッシュはnginxとphp間の通信の数を減らし、phpとデータベースへの負荷を軽減します。 proxy_cache
cachesettings
copyコードコードは次のとおりです。 Webキャッシュ領域名をcache_oneに設定します。メモリのキャッシュ領域のサイズは200MBで、1日間アクセスのないコンテンツは自動的にクリアされます。ハードディスクのキャッシュ領域のサイズは30GBです。 proxy_cache_path /data0/proxy_cache_dirlevels=1:2keys_zone=cache_one:200m inactive=1d max_size=30g;server
{
listen 80;
server_name www.yourdomain.com 192.168.8.42;
indexindex.htmlindex.htm ;
root /data0/htdocs/www;
location /
{
#バックエンド サーバーが 502、504、実行タイムアウトなどのエラーを返した場合、リクエストは上流の負荷分散プール内の別のサーバーに自動的に転送されますフェイルオーバーを実現します。
proxy_next_upstream http_502 http_504 エラー タイムアウト無効_header;
proxy_cache cache_one;
#HTTP ステータス コードごとに異なるキャッシュ時間を設定します
proxy_cache_valid 200 304 12h;
#ドメイン名、URI、パラメータを組み合わせて Web キャッシュのキー値を形成します。 Nginx は Key Value ハッシュに基づいて、キャッシュ コンテンツを 2 次キャッシュ ディレクトリに保存します
proxy_cache_key $host$uri$is_args$args;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://backend_server ;
expires 1d;
}
# は、URL が http://192.168.8.42/test.txt であると仮定します。この URL のキャッシュは、http://192.168.8.42/ にアクセスすることでクリアできます。 /test.txt をパージします。
location ~ /purge(/.*)
{
# URL キャッシュをクリアするには、指定した IP または IP 範囲のみを設定します。
allow 127.0.0.1;
allow 192.168.0.0/16;
すべて拒否;
proxy_cache_purge queue_one $host$1$is_args$args;
}
#拡張子が .php、.jsp、.cgi で終わる動的アプリケーションは許可されませんキャッシュ。
location ~ .*.(php|jsp|cgi)?$
{
proxy_set_header ホスト $host;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_pass http://backend_server;
}
access_log off;
}
}
fastcgi_cache キャッシュ設定
コードをコピー
コードは次のとおりです:
#キャッシュが保存されるフォルダーを定義しますfastcgi_cache_path /tt/cachelevels=1:2keys_zone=NAME:2880m inactive =2d max_size=10G ;#異なる URL リクエストのキャッシュを定義するfastcgi_cache_key "$scheme$request_method$host$uri$arg_filename$arg_x$arg_y";server {
listen 8080;
server_name www.example .com;
location / {
root / www;
indexindex.htmlindex.htmindex.php;
}
location ~ (|.php)$ {
root /www;
fastcgi_pass 127.0.0.1:9000;
fastcgi_cache NAME;
fastcgi_cache_valid 200 48h;
fastcgi_cache_min_uses 1;
fastcgi_cache_use_stale エラー タイムアウト無効なヘッダー http_500;
fastcgi_indexindex.php;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
include fastcgi.conf;
#キャッシュのセットアップ中に、それが見つかりましたそのクッキー確認後、この文を定義する必要があります
fastcgi_pass_header Set-Cookie;
}
log_format access '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
access_log /httplogs/ access.log access;
}
一般に、nginx の proxy_cache と fastcgi_cache のキャッシュ構成は似ています。
------------------------------------------------- ----------------------------------
memcache キャッシュ
memcache キャッシュについて説明する前に、まず理解しましょうmysql mysql のメモリ キャッシュは my.cnf で指定できます。
メモリ テーブルは一時テーブルとは異なり、一時テーブルの最大メモリも tmp_table_size=128M で設定する必要があります。 。データが一時テーブルの最大値設定をチェックすると、IO 操作が必要になるため、自動的にディスク テーブルに変換されますが、メモリ テーブルは影響を受けません。メモリがいっぱいになると、データフルエラーが表示されます。
例:
コードをコピー コードは次のとおりです:
テーブルテストを作成します
(
id int unsigned not null auto_increment 主キー
state char(10),
type char(20),
date char(30)
)engine=memory default charset=utf8
メモリテーブルの特徴:
1. メモリテーブルのテーブル定義は、拡張子 .frm でディスクに保存されるため、再起動しても失われません。
2. メモリテーブルのデータは、メモリが不足し、再起動後にデータが失われます
3 。メモリ テーブルは固定長形式を使用します
4. メモリ テーブルは、varchar やテキスト フィールドなどの BLOB 列やテキスト列をサポートしません
5。テーブルは auto_increment 列と null 値を含むことができる列のインデックスをサポートします
6. メモリ テーブルはサポートしません
7. メモリ テーブルはテーブル ロックです 頻繁に変更されると、パフォーマンスが低下する可能性があります
見てみましょう。 memcache では、比較的、mysql のメモリ テーブルには制限があります。
memcache の目的
1. システムの同時実行能力を向上させる
2. データベースの負荷を軽減する
注: memcache Linux システム 32 ビットは 4G メモリのみをサポートし、memcache の最大保存時間は 30 日です。 。
http://www.bkjia.com/PHPjc/328049.htmlwww.bkjia.com本当http://www.bkjia.com/PHPjc/328049.html技術記事 Nginx キャッシュ nginx には、fastcgi_cache と proxy_cache という 2 つのキャッシュ メカニズムがあります。これら 2 つのキャッシュ メカニズムの違いについて説明しましょう。proxy_cache は、バックエンド サーバーのコンテンツをキャッシュするために使用されます。