fix: restructure Caddyfile with proper directive ordering using matchers
Some checks failed
continuous-integration/drone/push Build was killed

This commit is contained in:
2026-01-16 16:54:05 +03:00
parent 40209e4564
commit 9433a2e655

View File

@@ -1,45 +1,33 @@
# Основной блок для вашего домена # Основной блок для вашего домена
{$APP_DOMAIN} { {$APP_DOMAIN} {
# Включаем сжатие для ускорение загрузки # Включаем сжатие для ускорения загрузки
encode zstd gzip encode zstd gzip
# --- Заголовки безопасности ---
header {
X-Frame-Options "SAMEORIGIN"
X-Content-Type-Options "nosniff"
Strict-Transport-Security "max-age=31536000;"
}
# --- Маршрутизация запросов --- # --- Маршрутизация запросов ---
# 1. API бэкенда (Yggdrasil, Web, Admin) # 1. API бэкенда (Yggdrasil, Web, Admin)
reverse_proxy /api/* backend:8080 @api path /api/* /authserver/* /sessionserver/*
reverse_proxy /authserver/* backend:8080 reverse_proxy @api backend:8080
reverse_proxy /sessionserver/* backend:8080
# 2. WebSocket для измерения пинга # 2. WebSocket для измерения пинга
handle /ws/ping { @ws path /ws/ping
reverse_proxy ping-helper:8081 reverse_proxy @ws ping-helper:8081
}
# 3. Раздача файлов (скины, модпаки) # 3. Раздача файлов (скины, модпаки)
handle_path /files/* { handle_path /files/* {
# Указываем корень, где лежат папки textures и modpacks
root * /srv root * /srv
# Включаем файловый сервер
file_server file_server
} }
# 4. Раздача статики фронтенда (Vue.js SPA) # 4. Фронтенд (Vue.js SPA) - все остальные запросы
# Этот блок обрабатывает все остальные запросы handle {
# 4. Раздача статики фронтенда (Vue.js SPA) reverse_proxy frontend:80
# Этот блок обрабатывает все остальные запросы (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 "..."
} }
} }