ユーザ用ツール

サイト用ツール


サイドバー

このページの翻訳:



最近の更新



Tag Cloud

06_virtualization:05_container:05_docker_nginx_proxy

05 Docker Nginx reverse proxy

Docker Nginxでリバースプロキシ

docker-compose install

docker-compose.yml

docker-compose.yml

version: '3'

services:
  reverse-proxy:
    image: nginx
    volumes:
      - ./reverse-proxy/nginx.conf:/etc/nginx/nginx.conf
    ports:
      - 8088:80

nginx.conf

./reverse-proxy/nginx.conf

events {
    worker_connections  16;
}
http {
    proxy_cache_path /var/cache/nginx keys_zone=zone1:1m max_size=1g inactive=24h;
    proxy_temp_path  /var/cache/nginx_tmp;
    server {
        listen 80;
        server_name localhost;
        location / {
            allow 192.168.0.11;
            deny all;
            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;
        }
    }
}

キャッシュが聞いているかどうかの確認

効いてる

x-nginx-cache: HIT

効いてない

x-nginx-cache: MISS

upstream_cache_status

下記upstream_cache_statusを設定した場合のステータス一覧

# レスポンスヘッダにキャッシュヒットしたかどうかを含める
add_header X-Nginx-Cache $upstream_cache_status;
HIT正しくキャッシュが効いた
BYPASSproxy_cache_bypass が 1である場合。キャッシュしないになってる
MISSキャッシュがないのでオリジナルサーバに取りに行ったとき
EXPIREDキャッシュが存在するが期限切れの場合

tmpfsをキャッシュディレクトリへ

fstabへ追加

/etc/fstab

tmpfs           /tmpfs            tmpfs   defaults,size=1024m,noatime,mode=1777      0       0

マウント

mkdir /tmpfs
mount /tmpfs

docker-compose.yml

これで、tmpfsにnginxのキャッシュが入るようになります。

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

06_virtualization/05_container/05_docker_nginx_proxy.txt · 最終更新: 2022/03/17 08:23 by matsui