Pregunta

después de algunos consejos sobre un problema, obtengo un software basado en Linux para equilibrar el tráfico entre dos servidores.

Básicamente tenemos nuestro sitio web de producción y un sistema de respaldo (en un sitio remoto). la producción se refleja en la copia de seguridad constantemente para mantenerlos sincronizados. nuestro nombre de dominio apunta a un servidor Linux Ubuntu 9.04 (instalación limpia nada aparte del software de equilibrio de carga). que ejecuta la última versión de Crossroads (también conocido como XR).

XR está configurado para entregar todas las conexiones al servidor web en vivo hasta que pierda su "latido". conexión con ese servidor, una vez que sucede, rebota las conexiones a nuestro sistema de respaldo.

El problema que tengo es que se manifiesta como una falta de respuesta de nuestro servidor web, básicamente el cliente pasa un mensaje XML correctamente formado a un servicio web .NET, este servicio realiza algunos cálculos y cambios en los datos y luego responde con un XML respuesta, sin embargo, el cliente nunca parece obtener la respuesta.

He estado usando wireshark para investigar este problema y parece que a la mitad de la respuesta la conexión se corta o se cae (no estoy muy seguro debido a mi falta de experiencia con wireshark).

He estado hablando con los autores del software XR y no pueden encontrar ningún motivo o problema en el software en sí que pueda explicar este comportamiento, y creo que tal vez sea algo relacionado con la distribución de Linux que estoy usando o un problema del kernel.

¿Alguien puede ayudarme a resolver este problema, ya que debemos poner en funcionamiento este sistema en las próximas semanas y este problema nos está frenando?

Ahora he cambiado de Ubuntu a CentOS 4 y lo he intentado nuevamente, ahora recibo respuestas aleatorias de los sistemas cuando uso wireshark. a veces recibo una respuesta XMl completamente formada del servidor, y en el siguiente intento solo podría obtener una respuesta parcial antes de que la caja de Linux envíe un paquete RST.

¿Fue útil?

Solución

Ok, esto resultó no tener nada que ver con el sistema operativo, sino un problema con el software que estaba usando. ingresando algunos valores de tiempo de espera en el archivo config xml (gracias a las sugerencias del autor) y esto parece haber resuelto el problema.

Aquí hay un ejemplo de las entradas que necesita agregar al archivo de configuración entre los símbolos #, el tiempo de espera es un poco excesivo (1 minuto)

<service>
    <name>web_http</name>
    <server>
      <address>x.x.x.x:80</address>
      <type>tcp</type>
      <dispatchmode>first-available</dispatchmode>

#

      <clienttimeout>60:60</clienttimeout>
      <backendtimeout>60:60</backendtimeout>

#

    </server>
      <backend>
        <address>x.x.x.x:80</address>
      </backend>
      <backend>
        <address>x.x.x.x:80</address>
      </backend>
      <backend>
        <address>x.x.x.x:80</address>
      </backend>
  </service>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top