このページの翻訳:
- 日本語 (ja)
- English (en)
最近の更新
Tag Cloud
このページへのアクセス
今日: 27 / 昨日: 1
総計: 763
- Dokuwiki.fl8.jp(3218)
- 13 CentOS6メール設定(62)
- FreeBSD カーネル再構築(59)
- 75 Proftpd(56)
最近の更新
このページへのアクセス
今日: 27 / 昨日: 1
総計: 763
nginxにはキャッシュ機能としてプロキシキャッシュとFastCGIキャッシュがある。
fastcgi_cache_pathとfastcgi_cache_keyは、httpディレクティブに記述
http { fastcgi_cache_path /tmpfs/cache-zone levels=1:2 keys_zone=cache-zone:30m max_size=512M inactive=600m; fastcgi_cache_key "$scheme$request_method$host$request_uri"; . . . .
fastcgi_cache_path | /tmpfs/cache-zone | キャッシュの保存先。バーチャルホスト毎に異なるパスを指定 |
---|---|---|
levels | 1:2 | キャッシュの構造レベルを指定 |
keys_zone | testdom:30m | ゾーン名とキャッシュキー管理用のメモリサイズ。 ゾーン名はバーチャルホスト毎に指定します。 ここではメモリサイズとしては30MBを保持するように設定 |
max_size | 512M | キャッシュの最大サイズ。このサイズを超えると利用されていないものから削除されていく |
inactive | 600m | この時間アクセスが無いキャッシュを削除 |
こちらはlocationディレクティブに記述
location ~ \.php$ {
fastcgi_read_timeout 300;
fastcgi_pass unix:/opt/bitnami/php/var/run/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $request_filename;
include fastcgi_params;
### 以下の設定を追加 ###
set $do_not_cache 0;
# -- POST or HEAD ?
if ($request_method != "GET") {
set $do_not_cache 1;
}
# -- Login or Comment or Post Editting ?
if ($http_cookie ~ ^.*(comment_author_|wordpress_logged_in|wp-postpass_).*$) {
set $do_not_cache 1;
}
fastcgi_cache cache-zone;
fastcgi_cache_valid 200 60m;
add_header X-F-Cache $upstream_cache_status;
}
$do_not_cache | 0 1 | キャッシュ時の条件記述。 $do_not_cache=0の時はキャッシュしない。 上記の条件は、GET以外はキャッシュしない。cookie条件:コメント中、記事作成中、ログイン中の場合はキャッシュしない。 |
---|---|---|
fastcgi_cache_valid | 200 60m | HTTPステータス毎にキャッシュの有効期限を設定。 ここではHTTPステータス:200は60分でキャッシュの有効期限が切れる |
add_header X-F-Cache | $upstream_cache_status | ヘッダーX-F-Cache にキャッシュの状態を表示。HITとかMISSとか表示される |
「X-F-Cache」で確認できる。
設定の下記部分
add_header X-F-Cache $upstream_cache_status;
# curl -D - -s -o /dev/null http://localhost/info.php HTTP/1.1 200 OK Server: nginx/1.18.0 Date: Sat, 01 May 2021 13:52:56 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive X-Powered-By: PHP/7.4.15 X-F-Cache: MISS
# curl -D - -s -o /dev/null http://localhost/info.php HTTP/1.1 200 OK Server: nginx/1.18.0 Date: Sat, 01 May 2021 13:52:58 GMT Content-Type: text/html; charset=UTF-8 Transfer-Encoding: chunked Connection: keep-alive X-Powered-By: PHP/7.4.15 X-F-Cache: HIT