Servidor HTTP
Configuración de errores
La sección error define cómo responde el servidor a peticiones que no coinciden con ningún endpoint registrado:
HttpServer:
error:
status: 404
headers:
Content-Type: "text/html; charset=UTF-8"
Server: "nginx/1.26.2"
page: "404page.html"Campos
| Campo | Tipo | Descripción |
|---|---|---|
status | int | Código de estado HTTP a devolver |
headers | map | Headers HTTP personalizados en la respuesta |
page | string | Archivo HTML a servir como cuerpo de la respuesta |
Mimetización (OPSEC)
Para que el servidor se parezca a un servicio legítimo, personaliza los headers y la página de error:
HttpServer:
error:
status: 404
headers:
Content-Type: "text/html; charset=UTF-8"
Server: "nginx/1.26.2"
X-Powered-By: "PHP/8.2.0"
X-Content-Type-Options: "nosniff"
page: "404page.html"Puedes crear una página 404page.html que imite el aspecto de un sitio legítimo (página de mantenimiento, portal corporativo, etc.).
Configuración HTTP
La sección http controla los parámetros del servidor HTTP subyacente:
HttpServer:
http:
max_header_bytes: 8192
read_header_timeout_sec: 0
read_timeout_sec: 0
write_timeout_sec: 0
idle_timeout_sec: 0
request_timeout_sec: 300
request_timeout_message: "504 Gateway Timeout"
disable_keep_alives: false
enable_http2: trueCampos HTTP
| Campo | Tipo | Descripción | Valor por defecto |
|---|---|---|---|
max_header_bytes | int | Tamaño máximo de headers en bytes | 8192 |
read_header_timeout_sec | int | Timeout para leer los headers (0 = sin límite) | 0 |
read_timeout_sec | int | Timeout para leer el body completo | 0 |
write_timeout_sec | int | Timeout para escribir la respuesta | 0 |
idle_timeout_sec | int | Timeout para conexiones inactivas (keep-alive) | 0 |
request_timeout_sec | int | Timeout máximo por petición | 300 |
request_timeout_message | string | Mensaje al superar el timeout | "504 Gateway Timeout" |
disable_keep_alives | bool | Deshabilitar conexiones keep-alive | false |
enable_http2 | bool | Habilitar HTTP/2 | true |
Recomendaciones de timeouts
Operaciones normales
http:
read_header_timeout_sec: 10
read_timeout_sec: 30
write_timeout_sec: 30
idle_timeout_sec: 120
request_timeout_sec: 300Operaciones con transferencias grandes
Si tus agentes transfieren archivos grandes, aumenta los timeouts:
http:
read_timeout_sec: 0 # Sin límite
write_timeout_sec: 0 # Sin límite
request_timeout_sec: 600 # 10 minutosHTTP/2
HTTP/2 está habilitado por defecto y ofrece:
- Multiplexación de streams sobre una sola conexión TLS
- Compresión de headers
- Menor latencia en comunicaciones con agentes
Para deshabilitarlo (por ejemplo, para mayor compatibilidad con ciertos proxies):
http:
enable_http2: falseKeep-Alive
Las conexiones keep-alive permiten reutilizar conexiones TCP, reduciendo la latencia:
http:
disable_keep_alives: false # Mantener habilitado (recomendado)
idle_timeout_sec: 120 # Cerrar tras 2 minutos de inactividadPara deshabilitar keep-alive (cada petición abre una conexión nueva):
http:
disable_keep_alives: truePerfiles de ejemplo
Perfil mínimo
HttpServer:
error:
status: 404
page: "404page.html"
http:
request_timeout_sec: 300
tls:
min_version: "TLS1.2"Perfil de producción (OPSEC)
HttpServer:
error:
status: 404
headers:
Content-Type: "text/html; charset=UTF-8"
Server: "nginx/1.26.2"
X-Frame-Options: "SAMEORIGIN"
X-Content-Type-Options: "nosniff"
Strict-Transport-Security: "max-age=31536000"
page: "404page.html"
http:
max_header_bytes: 8192
read_header_timeout_sec: 10
read_timeout_sec: 30
write_timeout_sec: 30
idle_timeout_sec: 120
request_timeout_sec: 300
request_timeout_message: "504 Gateway Timeout"
disable_keep_alives: false
enable_http2: true
tls:
min_version: "TLS1.2"
max_version: "TLS1.3"
prefer_server_cipher_suites: true
cipher_suites:
- "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
- "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
- "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"