ユーザ用ツール

サイト用ツール


06_virtualization:05_container:05_docker_nginx_proxy

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

次のリビジョン
前のリビジョン
06_virtualization:05_container:05_docker_nginx_proxy [2021/05/17 14:38] – 作成 matsui06_virtualization:05_container:05_docker_nginx_proxy [2022/03/16 23:23] (現在) matsui
行 2: 行 2:
  
 Docker Nginxでリバースプロキシ Docker Nginxでリバースプロキシ
 +
 +[[06_virtualization:05_container:02_dcoker_composer|docker-compose install]]
  
 ===== docker-compose.yml ===== ===== docker-compose.yml =====
行 25: 行 27:
 } }
 http { http {
 +    proxy_cache_path /var/cache/nginx keys_zone=zone1:1m max_size=1g inactive=24h;
 +    proxy_temp_path  /var/cache/nginx_tmp;
     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://example.com:8080/; 
             proxy_redirect off;             proxy_redirect off;
 +            proxy_pass http://example.com:8080/;
 +
 +            # 基本はキャッシュしない
 +            set $do_not_cache 1;
 +            # 画像のみキャッシュさせる
 +            if ($uri ~* "\.(jpg|jpeg|png|gif|css|js|ico|svg)$") {
 +                     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:
  
 </code> </code>
 +
 +
 +==== キャッシュが聞いているかどうかの確認 ====
 +
 +効いてる
 +  x-nginx-cache: HIT
 +
 +
 +効いてない
 +  x-nginx-cache: MISS
 +
 +
 +==== upstream_cache_status ====
 +下記upstream_cache_statusを設定した場合のステータス一覧
 +  # レスポンスヘッダにキャッシュヒットしたかどうかを含める
 +  add_header X-Nginx-Cache $upstream_cache_status;
 +
 +|HIT|正しくキャッシュが効いた|
 +|BYPASS|proxy_cache_bypass が 1である場合。キャッシュしないになってる|
 +|MISS|キャッシュがないのでオリジナルサーバに取りに行ったとき|
 +|EXPIRED|キャッシュが存在するが期限切れの場合|
 +
 +
 +==== tmpfsをキャッシュディレクトリへ ====
 +
 +=== fstabへ追加 ===
 +
 +<code|/etc/fstab>
 +tmpfs           /tmpfs            tmpfs   defaults,size=1024m,noatime,mode=1777      0       0
 +</code>
 +
 +=== マウント ===
 +
 +<code>
 +mkdir /tmpfs
 +mount /tmpfs
 +</code>
 +
 +=== docker-compose.yml ===
 +
 +これで、tmpfsにnginxのキャッシュが入るようになります。
 +
 +<code|docker-compose.yml>
 +version: '3'
 +
 +services:
 +  reverse-proxy:
 +    image: nginx
 +    volumes:
 +      - ./reverse-proxy/nginx.conf:/etc/nginx/nginx.conf
 +      - /tmpfs:/var/cache
 +    ports:
 +      - 8088:80
 +
 +</code>
 +
 +
 {{tag>Nginx Docker Proxy}} {{tag>Nginx Docker Proxy}}
06_virtualization/05_container/05_docker_nginx_proxy.1621262298.txt.gz · 最終更新: 2021/05/17 14:38 by matsui