← Todos los guías de migración

Guía de migración de competidor

Migrar de Lighttpd a Webship sin un corte ciego.

Traduza las condiciones del host, los objetivos del proxy, las raíces de documentos, los archivos TLS y la configuración del listener en rutas o sitios de Webship.

Se aplica a Webship 1.1.0lighttpd.conf

Define el límite de migración antes de cambiar el tráfico.

Comienza trasladando solo el comportamiento que Webship puede reproducir y validar. Deja la autenticación de aplicaciones, el descubrimiento de servicios, los scripts y las reglas de caché especializadas en el origen existente hasta que sus reemplazos pasen pruebas similares a producción.

Traduzca primero la ruta de producción más pequeña.

El fragmento de origen identifica el concepto de migración; el fragmento Webship muestra la forma de destino. Reemplace los dominios de ejemplo, direcciones, certificados, límites y rutas de salud con valores validados para su entorno.

Configuración representativa de Lighttpd
server.port = 443
$HTTP["host"] == "app.example.com" {
  proxy.server = ("" => (
    ("host" => "127.0.0.1", "port" => 8080)
  ))
}
Webship TOML equivalente
listen = "0.0.0.0:443"
workers = 4

[reverse_proxy]
enabled = true
connect_timeout_ms = 2000
max_retries = 0

[reverse_proxy.protocols]
h1 = true
h2 = true
h3 = true

[reverse_proxy.tls]
cert = "/etc/letsencrypt/live/app.example.com/fullchain.pem"
key = "/etc/letsencrypt/live/app.example.com/privkey.pem"

[[reverse_proxy.routes]]
domain = "app.example.com"
path_prefix = "/"
upstreams = ["127.0.0.1:8080", "127.0.0.1:8081"]
load_balancing = "weighted-peak-ewma"

[[reverse_proxy.upstreams]]
address = "127.0.0.1:8080"
protocol = "http1"
health_check_path = "/health"
health_check_interval_ms = 5000
health_check_timeout_ms = 1000

[[reverse_proxy.upstreams]]
address = "127.0.0.1:8081"
protocol = "http1"
health_check_path = "/health"
health_check_interval_ms = 5000
health_check_timeout_ms = 1000

[[reverse_proxy.policies]]
name = "default"
hosts = []
path_prefixes = ["/"]
methods = []
max_body_bytes = 1048576
total_timeout_ms = 30000

Mapear conceptos, no sintaxis.

Las directivas técnicas no siempre coinciden uno a uno. Usa esta tabla para localizar el área de configuración equivalente de Webship, luego valida la configuración efectiva y el comportamiento en tiempo de ejecución.

Concepto o directiva actualObjetivo de configuración de Webship
server.bind + server.portlisten + [reverse_proxy.protocols]
$HTTP[host][[reverse_proxy.routes]]
proxy.server host + port[[reverse_proxy.upstreams]]
ssl.pemfile + ssl.privkey[reverse_proxy.tls] / [[sites]] cert + key

Use un corte reversible de cinco pasos.

Mantenga el antiguo listener listo hasta que Webship haya pasado los controles de corrección, capacidad, seguridad, observabilidad y reversión con tráfico representativo.

  1. 1

    Comportamiento observable del inventario

    Registre listeners, dominios, rutas, upstreams, certificados, reescrituras, autenticación, reglas de caché, sondeos de salud, límites e integraciones operativas.

  2. 2

    Traducir un límite

    Mover un host o ruta a TOML estrictamente. Conservar los módulos específicos del proveedor y la lógica de la aplicación detrás de Webship hasta que se prueben reemplazos separados.

  3. 3

    Validar sin conexión y localmente

    Ejecutar --check-config y --print-effective-config, inspeccionar el resultado redactado, comprobar la salud localmente y usar TLS sobre TCP y UDP cuando HTTP/3 esté habilitado.

  4. 4

    Tráfico real canario

    Envíe un pequeño fragmento de tráfico observable a Webship. Compare códigos de estado, encabezados, cuerpos, latencia, salud de upstream, comportamiento de la caché, registros y decisiones de seguridad.

  5. 5

    Promocionar con reversión lista

    Aumentar el tráfico en las etapas medidas. Mantener el objetivo previo saludable y con enrutamiento inmediato hasta que la ventana de observación acordada y las puertas de carga pasen.

Valide primero. Haga la reversión mediante el enrutamiento, no editando en vivo.

Valide el archivo del candidato, inspeccione la configuración efectiva redactada y examine el escuchador privado antes de cambiar el tráfico. Conserve el binario antiguo, la configuración, el escuchador y el objetivo DNS o del equilibrador de carga hasta que se cierre la ventana de observación.

/usr/local/bin/webship --check-config --config /etc/webship/production.toml
/usr/local/bin/webship --print-effective-config --config /etc/webship/production.toml
curl --http3-only --insecure https://127.0.0.1:443/health