Consolidar en un solo archivo dynamic/config.yml
This commit is contained in:
@@ -8,7 +8,7 @@ Este directorio contiene configuración que Traefik recarga automáticamente sin
|
|||||||
- **routers.yml**: Routers HTTP/HTTPS (ejemplos comentados)
|
- **routers.yml**: Routers HTTP/HTTPS (ejemplos comentados)
|
||||||
- **services.yml**: Servicios backend (ejemplos comentados)
|
- **services.yml**: Servicios backend (ejemplos comentados)
|
||||||
|
|
||||||
**Nota:** Los archivos NO usan la raíz `http:` porque Traefik los carga automáticamente bajo `http.middlewares`, `http.routers`, y `http.services` respectivamente.
|
**Importante:** Cada archivo debe tener la estructura `http:` como raíz cuando se usa `directory:` en el proveedor file.
|
||||||
|
|
||||||
## Autenticación Básica
|
## Autenticación Básica
|
||||||
|
|
||||||
|
|||||||
@@ -1,46 +1,44 @@
|
|||||||
# ============================================
|
http:
|
||||||
# MIDDLEWARES
|
middlewares:
|
||||||
# ============================================
|
# Headers de seguridad
|
||||||
|
security-headers:
|
||||||
|
headers:
|
||||||
|
stsSeconds: 63072000
|
||||||
|
forceSTSHeader: true
|
||||||
|
stsIncludeSubdomains: true
|
||||||
|
stsPreload: true
|
||||||
|
frameDeny: true
|
||||||
|
contentTypeNosniff: true
|
||||||
|
browserXssFilter: true
|
||||||
|
referrerPolicy: "strict-origin-when-cross-origin"
|
||||||
|
customResponseHeaders:
|
||||||
|
X-Robots-Tag: "none,noarchive,nosnippet,notranslate,noimageindex"
|
||||||
|
|
||||||
# Headers de seguridad
|
# Rate limiting
|
||||||
security-headers:
|
rate-limit:
|
||||||
headers:
|
rateLimit:
|
||||||
stsSeconds: 63072000
|
average: 100
|
||||||
forceSTSHeader: true
|
burst: 200
|
||||||
stsIncludeSubdomains: true
|
period: 1m
|
||||||
stsPreload: true
|
|
||||||
frameDeny: true
|
|
||||||
contentTypeNosniff: true
|
|
||||||
browserXssFilter: true
|
|
||||||
referrerPolicy: "strict-origin-when-cross-origin"
|
|
||||||
customResponseHeaders:
|
|
||||||
X-Robots-Tag: "none,noarchive,nosnippet,notranslate,noimageindex"
|
|
||||||
|
|
||||||
# Rate limiting
|
# IP Allow List (ejemplo - ajusta tus IPs)
|
||||||
rate-limit:
|
ip-allowlist:
|
||||||
rateLimit:
|
ipAllowList:
|
||||||
average: 100
|
sourceRange:
|
||||||
burst: 200
|
- "127.0.0.1/32"
|
||||||
period: 1m
|
- "10.0.0.0/8"
|
||||||
|
- "172.16.0.0/12"
|
||||||
|
- "192.168.0.0/16"
|
||||||
|
|
||||||
# IP Allow List (ejemplo - ajusta tus IPs)
|
# Autenticación básica (genera hash con: docker run --rm httpd:alpine htpasswd -nbB admin tu_password)
|
||||||
ip-allowlist:
|
auth-basic:
|
||||||
ipAllowList:
|
basicAuth:
|
||||||
sourceRange:
|
users:
|
||||||
- "127.0.0.1/32"
|
- "admin:$2y$05$example_hash_CHANGE_THIS" # CAMBIA ESTE HASH
|
||||||
- "10.0.0.0/8"
|
|
||||||
- "172.16.0.0/12"
|
|
||||||
- "192.168.0.0/16"
|
|
||||||
|
|
||||||
# Autenticación básica (genera hash con: docker run --rm httpd:alpine htpasswd -nbB admin tu_password)
|
# Redirect www a root
|
||||||
auth-basic:
|
redirect-www:
|
||||||
basicAuth:
|
redirectRegex:
|
||||||
users:
|
regex: "^https?://www\\.(.+)"
|
||||||
- "admin:$2y$05$example_hash_CHANGE_THIS" # CAMBIA ESTE HASH
|
replacement: "https://${1}"
|
||||||
|
permanent: true
|
||||||
# Redirect www a root
|
|
||||||
redirect-www:
|
|
||||||
redirectRegex:
|
|
||||||
regex: "^https?://www\\.(.+)"
|
|
||||||
replacement: "https://${1}"
|
|
||||||
permanent: true
|
|
||||||
|
|||||||
@@ -1,29 +1,26 @@
|
|||||||
# ============================================
|
http:
|
||||||
# ROUTERS Y SERVICIOS (Ejemplos comentados)
|
routers:
|
||||||
# ============================================
|
# Ejemplo: Router para aplicación web con HTTPS y middlewares
|
||||||
# Descomentar y adaptar según necesites
|
# whoami:
|
||||||
|
# rule: "Host(`whoami.tudominio.com`)"
|
||||||
|
# entryPoints:
|
||||||
|
# - websecure
|
||||||
|
# middlewares:
|
||||||
|
# - security-headers
|
||||||
|
# - rate-limit
|
||||||
|
# service: whoami-service
|
||||||
|
# tls:
|
||||||
|
# certResolver: letsencrypt
|
||||||
|
|
||||||
# Ejemplo: Router para aplicación web con HTTPS y middlewares
|
# Ejemplo: Router con autenticación básica y restricción IP
|
||||||
# whoami:
|
# admin-panel:
|
||||||
# rule: "Host(`whoami.tudominio.com`)"
|
# rule: "Host(`admin.tudominio.com`)"
|
||||||
# entryPoints:
|
# entryPoints:
|
||||||
# - websecure
|
# - websecure
|
||||||
# middlewares:
|
# middlewares:
|
||||||
# - security-headers
|
# - auth-basic
|
||||||
# - rate-limit
|
# - ip-allowlist
|
||||||
# service: whoami-service
|
# - security-headers
|
||||||
# tls:
|
# service: admin-service
|
||||||
# certResolver: letsencrypt
|
# tls:
|
||||||
|
# certResolver: letsencrypt
|
||||||
# Ejemplo: Router con autenticación básica y restricción IP
|
|
||||||
# admin-panel:
|
|
||||||
# rule: "Host(`admin.tudominio.com`)"
|
|
||||||
# entryPoints:
|
|
||||||
# - websecure
|
|
||||||
# middlewares:
|
|
||||||
# - auth-basic
|
|
||||||
# - ip-allowlist
|
|
||||||
# - security-headers
|
|
||||||
# service: admin-service
|
|
||||||
# tls:
|
|
||||||
# certResolver: letsencrypt
|
|
||||||
|
|||||||
@@ -1,26 +1,23 @@
|
|||||||
# ============================================
|
http:
|
||||||
# SERVICIOS (Ejemplos comentados)
|
services:
|
||||||
# ============================================
|
# Ejemplo: Servicio apuntando a contenedor local
|
||||||
# Descomentar y adaptar según necesites
|
# whoami-service:
|
||||||
|
# loadBalancer:
|
||||||
|
# servers:
|
||||||
|
# - url: "http://whoami:80"
|
||||||
|
|
||||||
# Ejemplo: Servicio apuntando a contenedor local
|
# Ejemplo: Servicio apuntando a servidor externo
|
||||||
# whoami-service:
|
# admin-service:
|
||||||
# loadBalancer:
|
# loadBalancer:
|
||||||
# servers:
|
# servers:
|
||||||
# - url: "http://whoami:80"
|
# - url: "http://192.168.1.100:8080"
|
||||||
|
|
||||||
# Ejemplo: Servicio apuntando a servidor externo
|
# Ejemplo: Servicio con health check
|
||||||
# admin-service:
|
# api-service:
|
||||||
# loadBalancer:
|
# loadBalancer:
|
||||||
# servers:
|
# servers:
|
||||||
# - url: "http://192.168.1.100:8080"
|
# - url: "http://api:3000"
|
||||||
|
# healthCheck:
|
||||||
# Ejemplo: Servicio con health check
|
# path: "/health"
|
||||||
# api-service:
|
# interval: "10s"
|
||||||
# loadBalancer:
|
# timeout: "3s"
|
||||||
# servers:
|
|
||||||
# - url: "http://api:3000"
|
|
||||||
# healthCheck:
|
|
||||||
# path: "/health"
|
|
||||||
# interval: "10s"
|
|
||||||
# timeout: "3s"
|
|
||||||
|
|||||||
Reference in New Issue
Block a user