diff --git a/docker/main/rootfs/usr/local/nginx/conf/nginx.conf b/docker/main/rootfs/usr/local/nginx/conf/nginx.conf index 6d0861406..25131a108 100644 --- a/docker/main/rootfs/usr/local/nginx/conf/nginx.conf +++ b/docker/main/rootfs/usr/local/nginx/conf/nginx.conf @@ -32,6 +32,8 @@ http { gzip_proxied no-cache no-store private expired auth; gzip_vary on; + proxy_cache_path /dev/shm/nginx_cache levels=1:2 keys_zone=api_cache:10m max_size=10m inactive=1m use_temp_path=off; + upstream frigate_api { server 127.0.0.1:5001; keepalive 1024; @@ -185,6 +187,19 @@ http { proxy_pass http://frigate_api/; include proxy.conf; + proxy_cache api_cache; + proxy_cache_lock on; + proxy_cache_use_stale updating; + proxy_cache_valid 200 5s; + proxy_cache_bypass $http_x_cache_bypass; + add_header X-Cache-Status $upstream_cache_status; + + location /api/vod/ { + proxy_pass http://frigate_api/vod/; + include proxy.conf; + proxy_cache off; + } + location /api/stats { access_log off; rewrite ^/api/(.*)$ $1 break; diff --git a/web/src/api/index.jsx b/web/src/api/index.jsx index 9e4e63b41..d4113ed2b 100644 --- a/web/src/api/index.jsx +++ b/web/src/api/index.jsx @@ -7,6 +7,7 @@ import axios from 'axios'; axios.defaults.baseURL = `${baseUrl}api/`; axios.defaults.headers.common = { 'X-CSRF-TOKEN': 1, + 'X-CACHE-BYPASS': 1, }; export function ApiProvider({ children, options }) {