diff --git a/Caddyfile b/Caddyfile index 1a052e5..57c0889 100644 --- a/Caddyfile +++ b/Caddyfile @@ -1,45 +1,33 @@ - - # Основной блок для вашего домена {$APP_DOMAIN} { - # Включаем сжатие для ускорение загрузки + # Включаем сжатие для ускорения загрузки encode zstd gzip + # --- Заголовки безопасности --- + header { + X-Frame-Options "SAMEORIGIN" + X-Content-Type-Options "nosniff" + Strict-Transport-Security "max-age=31536000;" + } + # --- Маршрутизация запросов --- # 1. API бэкенда (Yggdrasil, Web, Admin) - reverse_proxy /api/* backend:8080 - reverse_proxy /authserver/* backend:8080 - reverse_proxy /sessionserver/* backend:8080 + @api path /api/* /authserver/* /sessionserver/* + reverse_proxy @api backend:8080 # 2. WebSocket для измерения пинга - handle /ws/ping { - reverse_proxy ping-helper:8081 - } + @ws path /ws/ping + reverse_proxy @ws ping-helper:8081 # 3. Раздача файлов (скины, модпаки) handle_path /files/* { - # Указываем корень, где лежат папки textures и modpacks root * /srv - # Включаем файловый сервер file_server } - # 4. Раздача статики фронтенда (Vue.js SPA) - # Этот блок обрабатывает все остальные запросы - # 4. Раздача статики фронтенда (Vue.js SPA) - # Этот блок обрабатывает все остальные запросы (Nginx container) - reverse_proxy * frontend:80 - - # --- Заголовки безопасности (рекомендация из ТЗ) --- - header { - # Запрещает встраивать сайт в iframe на других доменах - X-Frame-Options "SAMEORIGIN" - # Защита от MIME-сниффинга - X-Content-Type-Options "nosniff" - # Включает HSTS, заставляя браузеры использовать только HTTPS - Strict-Transport-Security "max-age=31536000;" - # Базовая политика безопасности контента - # Content-Security-Policy "..." + # 4. Фронтенд (Vue.js SPA) - все остальные запросы + handle { + reverse_proxy frontend:80 } }