Domanda

dopo alcuni consigli su un problema, sto usando un software basato su Linux per bilanciare il traffico tra due server.

Fondamentalmente abbiamo il nostro sito Web di produzione e un sistema di backup (sul sito remoto). la produzione viene costantemente sottoposta a mirroring nel backup per mantenerli sincronizzati. il nostro nome di dominio punta su un server Ubuntu 9.04 Linux (non installare nulla di diverso dal software di bilanciamento del carico). che esegue l'ultima versione di Crossroads (aka XR).

XR è configurato per consegnare tutte le connessioni al server web live fino a quando non perde il suo "battito cardiaco" connessione con quel server, una volta che succede rimbalza le connessioni al nostro sistema di backup.

Il problema che sto riscontrando si sta manifestando come una mancanza di risposta da parte del nostro server web, in pratica il client passa un messaggio XML correttamente formato a un servizio web .NET, questo servizio esegue alcune calulazioni e modifiche ai dati, quindi risponde con un XML risposta, tuttavia il client non sembra mai ottenere la risposta.

Sto usando WireShark per indagare su questo problema e sembra quasi a metà della risposta che la connessione viene interrotta o interrotta (non sono davvero sicuro a causa della mia mancanza di esperienza con WireShark).

Ho parlato con gli autori del software XR e non riescono a trovare alcun motivo o problema nel software stesso che possa spiegare questo comportamento e ritenere che forse abbia qualcosa a che fare con la distribuzione di Linux che sto usando o un problema del kernel.

qualcuno può aiutarmi a risolvere questo problema poiché dovremo rendere operativo questo sistema nelle prossime settimane e questo problema ci sta trattenendo.

Ora sono passato da Ubuntu a CentOS 4 e ci ho riprovato, ora ricevo risposte casuali dai sistemi quando utilizzo il wirehark. a volte ricevo una risposta XMl completamente formata dal server e al tentativo successivo potrei ottenere solo una risposta parziale prima che la scatola di Linux invii un pacchetto RST.

È stato utile?

Soluzione

Ok, questo si è rivelato essere nulla a che fare con il sistema operativo, ma un problema con il software che stavo usando. inserendo alcuni valori di timeout nel file config xml (grazie ai suggerimenti dell'autore) e questo sembra aver risolto il problema.

Ecco un esempio delle voci che è necessario aggiungere al file di configurazione tra i simboli #, il timeout indicato è un po 'eccessivo (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>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top