このページの2つのバージョン間の差分を表示します。
次のリビジョン | 前のリビジョン | ||
06_virtualization:05_container:05_docker_nginx_proxy [2021/05/17 14:38] – 作成 matsui | 06_virtualization:05_container:05_docker_nginx_proxy [2022/03/16 23:23] (現在) – matsui | ||
---|---|---|---|
行 2: | 行 2: | ||
Docker Nginxでリバースプロキシ | Docker Nginxでリバースプロキシ | ||
+ | |||
+ | [[06_virtualization: | ||
===== docker-compose.yml ===== | ===== docker-compose.yml ===== | ||
行 25: | 行 27: | ||
} | } | ||
http { | http { | ||
+ | proxy_cache_path / | ||
+ | proxy_temp_path | ||
server { | server { | ||
listen 80; | listen 80; | ||
行 31: | 行 35: | ||
allow 192.168.0.11; | allow 192.168.0.11; | ||
deny all; | deny all; | ||
- | proxy_pass http:// | ||
proxy_redirect off; | proxy_redirect off; | ||
+ | proxy_pass http:// | ||
+ | |||
+ | # 基本はキャッシュしない | ||
+ | set $do_not_cache 1; | ||
+ | # 画像のみキャッシュさせる | ||
+ | if ($uri ~* " | ||
+ | set $do_not_cache 0; | ||
+ | } | ||
+ | proxy_no_cache $do_not_cache; | ||
+ | proxy_cache_bypass $do_not_cache; | ||
+ | proxy_set_header Host $http_host; | ||
+ | proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; | ||
+ | proxy_set_header X-Forwarded-Proto $scheme; | ||
+ | proxy_set_header X-Real-IP $remote_addr; | ||
+ | proxy_ignore_headers Cache-Control; | ||
+ | proxy_cache zone1; | ||
+ | proxy_cache_key $uri; | ||
+ | proxy_cache_valid 200 302 20m; | ||
+ | proxy_cache_valid 404 10m; | ||
+ | # レスポンスヘッダにキャッシュヒットしたかどうかを含める | ||
+ | add_header X-Nginx-Cache $upstream_cache_status; | ||
} | } | ||
} | } | ||
行 38: | 行 62: | ||
</ | </ | ||
+ | |||
+ | |||
+ | ==== キャッシュが聞いているかどうかの確認 ==== | ||
+ | |||
+ | 効いてる | ||
+ | x-nginx-cache: | ||
+ | |||
+ | |||
+ | 効いてない | ||
+ | x-nginx-cache: | ||
+ | |||
+ | |||
+ | ==== upstream_cache_status ==== | ||
+ | 下記upstream_cache_statusを設定した場合のステータス一覧 | ||
+ | # レスポンスヘッダにキャッシュヒットしたかどうかを含める | ||
+ | add_header X-Nginx-Cache $upstream_cache_status; | ||
+ | |||
+ | |HIT|正しくキャッシュが効いた| | ||
+ | |BYPASS|proxy_cache_bypass が 1である場合。キャッシュしないになってる| | ||
+ | |MISS|キャッシュがないのでオリジナルサーバに取りに行ったとき| | ||
+ | |EXPIRED|キャッシュが存在するが期限切れの場合| | ||
+ | |||
+ | |||
+ | ==== tmpfsをキャッシュディレクトリへ ==== | ||
+ | |||
+ | === fstabへ追加 === | ||
+ | |||
+ | < | ||
+ | tmpfs / | ||
+ | </ | ||
+ | |||
+ | === マウント === | ||
+ | |||
+ | < | ||
+ | mkdir /tmpfs | ||
+ | mount /tmpfs | ||
+ | </ | ||
+ | |||
+ | === docker-compose.yml === | ||
+ | |||
+ | これで、tmpfsにnginxのキャッシュが入るようになります。 | ||
+ | |||
+ | < | ||
+ | version: ' | ||
+ | |||
+ | services: | ||
+ | reverse-proxy: | ||
+ | image: nginx | ||
+ | volumes: | ||
+ | - ./ | ||
+ | - / | ||
+ | ports: | ||
+ | - 8088:80 | ||
+ | |||
+ | </ | ||
+ | |||
+ | |||
{{tag> | {{tag> |