Panoramica #
L'obiettivo di questo articolo è spiegare come ingrandire le capacità dei server applicativi come Micio, jboss or IIS rendendoli altamente scalabili sul Web e impostandoli in alta disponibilità per essere tolleranti ai guasti e come rafforzare la sicurezza informatica.
Cos'è l'alta disponibilità? #
L'alta disponibilità è una qualità di un sistema o componente che assicura un alto livello di prestazioni operative, di solito uptime, per un periodo di tempo superiore al normale.
Impostando Server delle applicazioni in alta disponibilità, risolviamo i seguenti problemi:
- Un singolo server perde efficienza quando gestisce una grande quantità di richieste
- I dati della sessione vengono conservati in caso di errore del server
- Aggiornamento dell'applicazione senza interrompere il servizio
Cos'è la scala web? #
Applicando i principi di scala Web agli Application Server, tutti i processi aziendali di qualsiasi dimensione sono in grado di crescere, essere ottimizzati, automatizzati e scalabili in modo efficace.
Cos'è un server delle applicazioni? #
Un application server è un framework software che fornisce la logica di business per un programma applicativo, ciò significa che esso amministra le risorse per creare applicazioni Web e un ambiente server per eseguirle.
Anche se questo articolo può essere usato come guida per qualsiasi application server, spiegheremo alcuni dettagli sui più popolari, che sono:
- Migliori Micio software (o anche noto come server Apache Tomcat o Tomcat): un'implementazione open source delle tecnologie Java Servlet, JavaServer Pages, Java Expression Language e Java WebSocket.
- JBoss or Volo selvaggio: il server delle applicazioni sviluppato da Red Hat.
- IIS (Internet Information Services): il server delle applicazioni sviluppato da Microsoft.
Impostare RELIANOID Load Balancer #
Con RELIANOID Load Balancer possiamo garantire elevata disponibilità e scalabilità per i server applicativi. Tieni presente che per seguire queste istruzioni sarà necessario installare un'istanza di RELIANOID Load Balancer e diverse istanze di server delle applicazioni. L’ambiente che andremo a descrivere è il seguente:

Passo 0: replica del server #
Nel nostro esempio utilizziamo due server di backend per ogni applicazione, ma possiamo includere quanto richiesto. È fondamentale garantire la coerenza, in modo che quando ci si connette a un server delle applicazioni, si veda sempre lo stesso e tutti i dati salvati nell'applicazione non vadano persi. Per ottenere ciò, è necessario configurare la replica della sessione all'interno dei server. Lo chiamiamo step 0 come questo deve essere fatto nei server delle applicazioni.
Micio fornisce la replica della sessione in memoria integrata: DeltaManager e BackupManager. La principale differenza tra questi due replicatori è questa DeltaManager è più lento, ma più affidabile in caso di guasto.
JBoss fornisce anche un modo semplice per abilitare la replica della sessione: contrassegnando l'applicazione come distribuibile in web.xml descrittore.
Servizio di replica per IIS può essere raggiunto usando DFSR (Replica del file system distribuito).
Passo 1: crea un IP virtuale #
Quando RELIANOID Load Balancer è installato, è necessario creare un nuovo IP virtuale, dal menu principale selezionare Rete-> Interfacce virtuali-> Azioni-> Crea
Trova l'interfaccia fisica in cui desideri creare un IP virtuale
Digita il nome e l'indirizzo del tuo nuovo IP virtuale. Quindi salvarlo facendo clic sul pulsante "Crea".
Passo 2: crea una http farm #
Una farm o cluster è una raccolta di server di computer che forniscono funzionalità server che aumentano significativamente le sue capacità. Anche se stiamo usando i termini fattoria e gruppo come sinonimi, c'è una leggera differenza tra loro. Quando si parla di a gruppo, la ridondanza è implicita, ma quando si parla di a fattoria, potrebbe esserci o non esserci alcuna ridondanza. Nel nostro caso, poiché avremo una configurazione tollerante ad errori, potremmo parlare di farm o cluster come sinonimi.
In questo modo, impostando una farm di server delle applicazioni, aumenteremo le sue prestazioni e la tolleranza ai guasti, che è essenziale per l'alta disponibilità. Al fine di raggiungere questo obiettivo LSLB-> Fattorie-> Crea
Seleziona un nome e HTTP come profilo Selezioniamo il profilo http perché è la migliore opzione per i servizi web in quanto possiamo fornire opzioni di commutazione dei contenuti sotto lo stesso IP e la stessa porta virtuale.
Verranno visualizzate altre due opzioni. Seleziona l'IP virtuale creato sul passo 1 e una porta (nell'esempio scegliamo 80, dato che è l'impostazione predefinita per il protocollo HTTP) e fai clic sul Salva pulsante.
Passo 3: aggiungi i servizi #
L'idea principale è quella di servire diverse applicazioni da diversi server di applicazioni dallo stesso IP virtuale e dalla stessa porta. Quindi, una volta creata la fattoria, dobbiamo modificarla per aggiungere nuovi servizi. Nel nostro esempio, configureremo tre servizi. Uno per ogni server delle applicazioni. Si prega di fare clic sul pulsante modifica fattoria.
Diversi dettagli della fattoria possono essere modificati, nell'esempio che stiamo per impostare i valori predefiniti e i servizi.
Nello screenshot qui sopra abbiamo Aggiunto un servizio con il nome del servizio "app1".
Poiché accediamo a tutti e tre i servizi attraverso la stessa azienda, dobbiamo distinguere tra questi servizi. Per fare ciò, possiamo impostare un valore per Modello URL. Questo campo consente di determinare un servizio Web in base all'URL che il client richiede tramite un pattern URL specifico. Nel nostro esempio, scriveremo ^ / App1. *, ^ / App2. * e ^ / App3. *. Fare clic su modificare applicare le modifiche.
Tieni conto che il back-end deve trovare l'indirizzo http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (nel nostro esempio http://192.168.56.200/app1), per garantire ciò, il contesto deve essere impostato nella tua applicazione. Nei nostri esempi, imposteremo il contesto / app1 per Micio, / app2 per jboss e / app3 per IIS. Contesto rappresenta un'applicazione web che viene eseguita all'interno di un particolare host virtuale. Nel caso particolare di IIS, i contesti sono indicati come applicazioni.
In questo esempio, abbiamo due server back-end per applicazione. Selezioniamo IP, port (predefinito 8080 per Micio e JBosse 80 per IIS), timeout e peso e fare clic su salva backend pulsante.
Vogliamo evitare la commutazione dei server: se durante la nostra sessione passiamo da un server all'altro, ci saranno efficienza, dati e persino perdita di comunicazione. Per evitare questo il Sessione di persistenza deve essere configurato Sceglieremo di mantenere una sessione per id di sessione, quindi questo significa che durante una sessione ci collegheremo a un solo server.
Nei parametri globali del servizio ora possiamo modificare il campo della sessione di persistenza in COOKIE: un determinato cookie
Seleziona Jsessionid come identificatore di sessione di persistenza per Tomcat e Jboss e SessionID per IIS, quindi fare clic su Aggiorna nella parte inferiore della pagina.
Ora, sotto la stessa farm dobbiamo aggiungere altri 2 servizi nello stesso modo di app1 per app2 e app3, incluso il cookie di persistenza per JBoss (il valore predefinito è chiamato Jsessionid) e IIS (il cookie predefinito per ASP.NET è ASPXAUTH), ma è possibile utilizzare il cookie richiesto dall'applicazione. Ogni servizio nella farm ha i propri backend che possono essere condivisi tra farms o farms services.
Nota che l'ordine dei servizi è importante per corrispondere al modello URL corretto.
Infine, dobbiamo applicare le modifiche riavviando la farm.
Congratulazioni! hai configurato i server delle applicazioni in alta disponibilità. Puoi accedervi digitando http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (nel nostro esempio http://192.168.56.200/app1, http://192.168.56.200/app2 or http://192.168.56.200/app3).
Passo 4: controllo avanzato #
Ora configureremo il guardiano della farm per eseguire controlli di integrità avanzati sui backend assicurandoci che siano attivi, in esecuzione e il comportamento corretto dell'applicazione, non solo un controllo della porta TCP. Si prega di individuare il Guardiano della fattoria all'interno del tuo servizio che abbiamo impostato nel passaggio 3. Clicca su Utilizzare FarmGuardian per controllare i server di backend, puoi anche modificare l 'intervallo tra il controllo e, infine, nel Comando per controllare casella di testo, digitare il seguente comando.
controlla_http -I HOST -w 10 -c 10 -t 10 -e 200 -p PORT -s ' '
Infine, fai clic su Aggiorna nella parte inferiore della pagina.
Il comando check_http verifica le connessioni HTTP con l'host specificato. Nel nostro caso, stiamo usando le seguenti opzioni:
-HOST: Il token HOST verrà sostituito dall'indirizzo IP back-end definito.
-w 10: tempo di risposta per lo stato di avviso: 10 secondi
-c 10: tempo di risposta allo stato critico: 10 secondi
-t 10: 10 secondi prima del timeout della connessione
-e 200: si aspetta la stringa 200 nello stato della risposta del server
-p PORT: La porta token verrà sostituita dalla porta backend definita.
-S ' ': la stringa da aspettarsi nel contenuto è " '
Quindi ciò che questo comando farà è fondamentalmente verificare che otteniamo una risposta 200 OK e che il comando di risposta contenga la stringa ' '. Selezioniamo questa stringa perché è alla fine della risposta, in questo modo possiamo garantire di ottenere una risposta completa dai backend.
Passo 5: alta sicurezza #
È possibile impostare facilmente comunicazioni sicure con RELIANOID Load Balancer, quindi il passaggio successivo è abilitare il listener HTTPS: sul file Modifica i parametri globali della farm schermo, cambia il listener della farm da HTTP a HTTPS e la Virtual Port a 443.
Ora è possibile accedere ai servizi digitando https://[Your_virtual_ip]/[yourappservice] nel tuo browser.
Le comunicazioni sicure sono ora in esecuzione, ma possiamo andare oltre configurando i parametri HTTPS: all'interno dei parametri globali della farm, individuare Impostazioni HTTPS sezione. Possiamo cambiare il Ciphers a Alta sicurezza.
Il campo delle cifre viene utilizzato per creare un elenco di cifre accettate dalle connessioni SSL al fine di rafforzare la connessione SSL. Selezionando Alta sicurezza, imposteremo di default le cifre.
kEECDH+ECDSA+AES128:kEECDH+ECDSA+AES256:kEECDH+AES128:kEECDH+AES256:kEDH+AES128:kEDH+AES256:DES-CBC3-SHA:+SHA:!aNULL:!eNULL:!LOW:!kECDH:!DSS:!MD5:!EXP:!PSK:!SRP:!CAMELLIA:!SEED
Un'altra opzione è il Certificati HTTPS disponibili: verrà mostrato un elenco di certificati da selezionare per la farm corrente (solo per le farm HTTP, che è il nostro caso). Possiamo selezionarne uno dall'elenco e fare clic su Aggiungi. Infine, fai clic su modificare e riavviare la farm per applicare le modifiche.
Per ulteriori informazioni, consultare Aziende di profilo HTTP.
HTTPS può anche essere abilitato nei server delle applicazioni, se questo è il caso, è necessario abilitare l'opzione Backend HTTPS.










