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

CampoTipoDescripción
statusintCódigo de estado HTTP a devolver
headersmapHeaders HTTP personalizados en la respuesta
pagestringArchivo 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: true

Campos HTTP

CampoTipoDescripciónValor por defecto
max_header_bytesintTamaño máximo de headers en bytes8192
read_header_timeout_secintTimeout para leer los headers (0 = sin límite)0
read_timeout_secintTimeout para leer el body completo0
write_timeout_secintTimeout para escribir la respuesta0
idle_timeout_secintTimeout para conexiones inactivas (keep-alive)0
request_timeout_secintTimeout máximo por petición300
request_timeout_messagestringMensaje al superar el timeout"504 Gateway Timeout"
disable_keep_alivesboolDeshabilitar conexiones keep-alivefalse
enable_http2boolHabilitar HTTP/2true

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: 300

Operaciones 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 minutos

HTTP/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: false

Keep-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 inactividad

Para deshabilitar keep-alive (cada petición abre una conexión nueva):

http:
  disable_keep_alives: true

Perfiles 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"