35 lines
1.1 KiB
Caddyfile
35 lines
1.1 KiB
Caddyfile
# Внутренний Caddy (TLS обрабатывается внешним)
|
|
:80 {
|
|
# --- Заголовки безопасности ---
|
|
header {
|
|
X-Frame-Options "SAMEORIGIN"
|
|
X-Content-Type-Options "nosniff"
|
|
Strict-Transport-Security "max-age=31536000;"
|
|
}
|
|
|
|
# --- Маршрутизация запросов (route для явного порядка) ---
|
|
route {
|
|
# 1. API бэкенда (Yggdrasil, Web, Admin)
|
|
reverse_proxy /api/* backend:8080
|
|
reverse_proxy /authserver/* backend:8080
|
|
reverse_proxy /sessionserver/* backend:8080
|
|
|
|
# 2. WebSocket для измерения пинга
|
|
reverse_proxy /ws/ping ping-helper:8081
|
|
|
|
# 3. Раздача файлов (скины, модпаки)
|
|
@files path /files/*
|
|
handle @files {
|
|
uri strip_prefix /files
|
|
root * /srv
|
|
file_server
|
|
}
|
|
|
|
# 4. Фронтенд (Vue.js SPA) - все остальные запросы
|
|
reverse_proxy frontend:80
|
|
}
|
|
|
|
# Включаем сжатие
|
|
encode zstd gzip
|
|
}
|