|
|
@@ -1,12 +1,23 @@
|
|
|
{
|
|
|
- # Global options
|
|
|
+ # Global options - HTTP only (SSL терминируется на Synology)
|
|
|
admin off
|
|
|
http_port 80
|
|
|
- https_port 443
|
|
|
}
|
|
|
|
|
|
-# API subdomain
|
|
|
+# API subdomain - проксирует на backend + MinIO S3 API
|
|
|
api.{$DOMAIN} {
|
|
|
+ # MinIO S3 API: /s3/* -> minio:9000
|
|
|
+ @s3 {
|
|
|
+ path /s3/*
|
|
|
+ }
|
|
|
+ reverse_proxy @s3 minio:9000 {
|
|
|
+ header_up Host {host}
|
|
|
+ header_up X-Real-IP {remote}
|
|
|
+ header_up X-Forwarded-For {remote}
|
|
|
+ header_up X-Forwarded-Proto {scheme}
|
|
|
+ }
|
|
|
+
|
|
|
+ # Backend API: всё остальное -> backend:8080
|
|
|
reverse_proxy backend:8080 {
|
|
|
header_up Host {host}
|
|
|
header_up X-Real-IP {remote}
|
|
|
@@ -14,9 +25,8 @@ api.{$DOMAIN} {
|
|
|
header_up X-Forwarded-Proto {scheme}
|
|
|
}
|
|
|
|
|
|
- # Security headers
|
|
|
+ # Security headers (HSTS на Synology, здесь — остальное)
|
|
|
header {
|
|
|
- Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
|
|
|
X-Content-Type-Options "nosniff"
|
|
|
X-Frame-Options "DENY"
|
|
|
Referrer-Policy "strict-origin-when-cross-origin"
|
|
|
@@ -45,7 +55,6 @@ api.{$DOMAIN} {
|
|
|
|
|
|
# Security headers
|
|
|
header {
|
|
|
- Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
|
|
|
X-Content-Type-Options "nosniff"
|
|
|
X-Frame-Options "DENY"
|
|
|
Referrer-Policy "strict-origin-when-cross-origin"
|
|
|
@@ -66,17 +75,5 @@ api.{$DOMAIN} {
|
|
|
encode zstd gzip
|
|
|
}
|
|
|
|
|
|
-# MinIO console (optional, restricted)
|
|
|
-minio.{$DOMAIN} {
|
|
|
- reverse_proxy minio:9001 {
|
|
|
- header_up Host {host}
|
|
|
- header_up X-Real-IP {remote}
|
|
|
- header_up X-Forwarded-For {remote}
|
|
|
- header_up X-Forwarded-Proto {scheme}
|
|
|
- }
|
|
|
-
|
|
|
- # Basic auth for MinIO console (add credentials to env)
|
|
|
- basicauth {
|
|
|
- {$MINIO_CONSOLE_USER} {$MINIO_CONSOLE_PASSWORD}
|
|
|
- }
|
|
|
-}
|
|
|
+# MinIO Console (9001) — ТОЛЬКО внутри Docker сети, доступ через SSH туннель
|
|
|
+# Никакого внешнего доступа, никакого minio.{$DOMAIN}
|