chore(nginx): раздача ассетов сегментации со своего домена
Отдельный `location /mediapipe/` под рантайм MediaPipe: gzip (без него wasm едет все 9 МБ, со сжатием — около трёх) и долгий кэш — файлы неизменны в пределах сборки образа и скачиваются один раз на браузер. Модель (.tflite) из списка gzip исключена намеренно: внутри она уже сжатый архив.
This commit is contained in:
@@ -170,12 +170,33 @@ server {
|
|||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
# --- Медиа (аватары): раздача напрямую из volume, в обход backend. ---
|
# --- Медиа (аватары, картинки фона): раздача напрямую из volume, в обход backend. ---
|
||||||
location /media/ {
|
location /media/ {
|
||||||
alias /media/;
|
alias /media/;
|
||||||
autoindex off;
|
autoindex off;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# --- Рантайм MediaPipe для замены фона видео (сессия 35) ---
|
||||||
|
# Ассеты сегментации (wasm-рантайм ~9 МБ + модель ~250 КБ) отдаются СО
|
||||||
|
# СВОЕГО домена, а не с внешних CDN: VidConf ставят в закрытых контурах,
|
||||||
|
# где jsdelivr и storage.googleapis.com недоступны, и там фича молча не
|
||||||
|
# работала бы (см. frontend/src/lib/virtualBackground.ts).
|
||||||
|
#
|
||||||
|
# gzip именно здесь, а не на весь сервер: без сжатия wasm едет все 9 МБ,
|
||||||
|
# со сжатием — около 3. Файлы неизменны в пределах сборки образа и
|
||||||
|
# скачиваются один раз на браузер, поэтому кэшируются надолго.
|
||||||
|
location /mediapipe/ {
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
gzip on;
|
||||||
|
# Модель (.tflite) в список не входит намеренно: внутри она уже
|
||||||
|
# сжатый архив, gzip дал бы 0% выигрыша за полную цену по CPU.
|
||||||
|
gzip_types application/wasm application/javascript;
|
||||||
|
gzip_min_length 1024;
|
||||||
|
gzip_proxied any;
|
||||||
|
expires 30d;
|
||||||
|
add_header Cache-Control "public, max-age=2592000";
|
||||||
|
}
|
||||||
|
|
||||||
# --- Frontend SPA (React + Vite): статика вкомпилирована в образ nginx
|
# --- Frontend SPA (React + Vite): статика вкомпилирована в образ nginx
|
||||||
# (frontend/Dockerfile) в /usr/share/nginx/html. `try_files` с
|
# (frontend/Dockerfile) в /usr/share/nginx/html. `try_files` с
|
||||||
# history-fallback на /index.html нужен для клиентского роутинга
|
# history-fallback на /index.html нужен для клиентского роутинга
|
||||||
|
|||||||
Reference in New Issue
Block a user