Reflejando el tráfico con Nginx

16

Necesito duplicar / reflejar el tráfico que llega a mi servidor / recurso.

Quiero decir, tengo el servidor A y B y N (nginx) como servidor web.

Todo el tráfico que llega a N / recurso -> redirige a A y B

¿Es posible?

Agus
fuente
2
Probablemente no quieras hacer esto. ¿Qué es lo que realmente intentas hacer?
Michael Hampton
1
Realmente lo necesito para hacerlo
Agus
2
Tengo un caso de uso. Tengo un cliente que envía datos a mis servidores que utiliza nuestra infraestructura de producción. Necesito exactamente los mismos datos enviados a mis servidores de desarrollo para un mayor desarrollo. El cliente solo puede enviar los datos a 1 punto final. No preguntes por qué, no lo sé.
The Dude
1
Oh, necesito duplicar el tráfico, quiero decir que el tráfico se procesará por A, pero B recibirá el proceso fuera de línea
Agus
2
Encontré otra versión de esta pregunta con una respuesta que me ayudó: serverfault.com/a/515531/175380 Básicamente, configuraste la ubicación para que se refleje en una post_actiondirectiva. Esto se ejecutará después de que la máquina de producción haya satisfecho la solicitud.
Adam Lukens

Respuestas:

14

Nginx ahora tiene un módulo espejo http. La documentación está en https://nginx.org/en/docs/http/ngx_http_mirror_module.html

Ejemplo de configuración de la documentación:

location / {
    mirror /mirror;
    proxy_pass http://backend;
}

location /mirror {
    internal;
    proxy_pass http://test_backend$request_uri;
}
Slack Undertow
fuente
¿Hay alguna manera de que pueda usar un espejo incluso si uno de los hosts está inactivo? Tengo un caso de uso para eso.
Sagar Kharab
2

Basado en su README Parece que GOR podría ayudarlo a resolver su problema.

Nunca lo usé antes, me topé con él esta semana, ¡así que buena suerte!

Marcel
fuente
Hola, al usar GOR, solo reconoce con un http 200. Entonces, si tiene un objeto de respuesta o validación, quiere que se haga con lo que el cliente le envía, no creo que esto funcione para él. Por lo que puedo decir, y soy nuevo en Gor, no puede pasar el objeto de resultado de uno de sus segmentos de salida.
PatrickWalker
Estamos probando GOR en este momento y tenemos un par de problemas. Interpreta encabezados como: Ubicación: // newpath que genera solicitudes como GET // newpath. Redirige los encabezados originales sueltos (incluido el agente de uso del host, etc.) Estamos migrando a otra herramienta.
Aalex Gabi
0

Después de cavar y cavar encontré una solución. Puede verlo aquí Copie y envíe una solicitud a otro servidor nginx para pruebas de tráfico real por @scari

Solo pensé que debería mencionarlo aquí para facilitar la búsqueda de otras personas. En mi configuración, no utilicé uwsgi; en cambio, quería duplicar cada solicitud entrante en servidores adicionales (además de los servidores de red troncal que ya tenían la carga equilibrada.

Espero que ayude,
Liron

Liron
fuente