utilizados sirve servidores servidor que para mas funciones funciona ejemplos definicion como caracteristicas http cors haproxy

http - sirve - servidores web ejemplos



Cómo enviar una respuesta con HAProxy sin pasar la solicitud a los servidores web (1)

La única forma de hacerlo es en HAProxy 1.5.14 activando manualmente el error 503 (no hay servidores disponibles para manejar la solicitud) y configurando la página de error en el archivo con encabezados CORS personalizados.

backend cors_headers errorfile 503 /path/to/custom/file.http

El file.http debe contener los encabezados deseados y 2 líneas vacías al final

HTTP/1.1 200 OK Access-Control-Allow-Origin: https://www.example.com Access-Control-Max-Age: 31536000 Content-Length: 0 Cache-Control: private <REMOVE THIS LINE COMPLETELY>

Este "método" tiene un par de limitaciones:

  • no hay forma de verificar el origen antes de enviar los encabezados CORS, por lo que tendrá que tener una lista estática de orígenes permitidos o tendrá que permitir todos los orígenes
  • falta de encabezados dinámicos: no se puede hacer

    http-response set-header Fecha% [date (), http_date]

o establece el encabezado Expires .

Nota: si está actualizando el archivo HTTP dinámicamente a lo largo del tiempo, para aplicar los cambios a HAProxy deberá reiniciarlo. Puede ser un reinicio elegante o un reinicio duro, en cualquier caso, el nuevo archivo se cargará, almacenará en caché y se servirá de inmediato.

El servidor recibe miles de solicitudes OPTIONS debido a CORS (Intercambio de recursos de origen cruzado). En este momento, cada solicitud de opciones se envía a uno de los servidores, lo que es un poco derrochador, sabiendo que HAProxy puede agregar los encabezados CORS sin la ayuda de un servidor web.

frontend https-in ... use_backend cors_headers if METH_OPTIONS ... backend cors_headers rspadd Access-Control-Allow-Origin:/ https://www.example.com rspadd Access-Control-Max-Age:/ 31536000

Sin embargo, para que esto funcione, necesito especificar al menos un servidor en vivo en el backend cors_headers y ese servidor aún recibirá las solicitudes.

¿Cómo puedo manejar la solicitud en el back-end sin especificar ningún servidor? ¿Cómo puedo detener la propagación de la solicitud a los servidores, mientras envío la respuesta al navegador y mantengo la conexión activa?