Guía de migración de competidor
Migrar de Apache HTTP Server a Webship sin un corte ciego.
Traduza VirtualHost, ProxyPass, TLS, tiempo de espera y comportamiento upstream a estrictos Webship TOML, luego retire los listeners de borde de Apache en etapas controladas.
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.
<VirtualHost *:443>
ServerName app.example.com
ProxyPass / http://127.0.0.1:8080/
ProxyPassReverse / http://127.0.0.1:8080/
</VirtualHost>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 = 30000Mapear 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 actual | Objetivo de configuración de Webship |
|---|---|
Listen + VirtualHost | listen + [reverse_proxy.protocols] |
ServerName + ProxyPass path | [[reverse_proxy.routes]] |
ProxyPass target | [[reverse_proxy.upstreams]] |
ProxyPass timeout | [[reverse_proxy.policies]] |
SSLCertificateFile + SSLCertificateKeyFile | [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
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
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
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
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
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