Overzicht #
Het doel van dit artikel is om uit te leggen hoe u de mogelijkheden van applicatieservers zoals Kater, jboss or IIS door ze zeer schaalbaar te maken voor het web en door ze in te stellen met een hoge beschikbaarheid, zodat ze bestand zijn tegen storingen. Ook wordt besproken hoe de cyberbeveiliging kan worden versterkt.
Wat is hoge beschikbaarheid? #
Hoge beschikbaarheid is een kwaliteit van een systeem of component die een hoog niveau van operationele prestaties, meestal uptime, garandeert voor een langere periode dan normaal.
Door het instellen Applicatieservers Met hoge beschikbaarheid lossen wij de volgende vraagstukken op:
- Een enkele server verliest aan efficiëntie bij het verwerken van een groot aantal verzoeken
- Sessiegegevens blijven bewaard in geval van een serverstoring
- Applicatie bijwerken zonder de service te onderbreken
Wat is webschaal? #
Door de principes van webschaalbaarheid toe te passen op applicatieservers kunnen alle bedrijfsprocessen van elke omvang groeien, worden geoptimaliseerd, worden geautomatiseerd en effectief schaalbaar.
Wat is een applicatieserver? #
Een applicatieserver is een softwareframework dat de bedrijfslogica voor een applicatieprogramma levert. Dat wil zeggen dat het bronnen beheert om webapplicaties te maken en een serveromgeving om deze uit te voeren.
Hoewel dit artikel als leidraad voor elke applicatieserver kan worden gebruikt, lichten we hier eerst wat details toe over de populairste, namelijk:
- Het Kater software (ook bekend als Apache Tomcat of Tomcat-server): een open source-implementatie van de technologieën Java Servlet, JavaServer Pages, Java Expression Language en Java WebSocket.
- JBoss or Wilde vlieg: de applicatieserver ontwikkeld door Red Hat.
- IIS (Internet Information Services): De applicatieserver ontwikkeld door Microsoft.
Opzetten RELIANOID Load Balancer #
Met RELIANOID Load Balancer We kunnen hoge beschikbaarheid en schaalbaarheid garanderen voor applicatieservers. Let op: om deze instructies te volgen, moet u een exemplaar van RELIANOID Load Balancer en diverse instanties van applicatieservers. De omgeving die we gaan beschrijven is de volgende:

Stap 0: Serverreplicatie #
In ons voorbeeld gebruiken we twee backendservers voor elke applicatie, maar we kunnen er zoveel gebruiken als nodig is. Het is cruciaal om consistentie te garanderen, zodat we bij verbinding met een applicatieserver altijd dezelfde zien en alle in de applicatie opgeslagen gegevens niet verloren gaan. Om dit te bereiken, moet sessiereplicatie binnen de servers worden ingesteld. We noemen dit stap 0 omdat dit op de applicatieservers moet gebeuren.
Kater biedt ingebouwde in-memory sessiereplicatie: DeltaManager en BackUpManagerHet belangrijkste verschil tussen deze twee replicators is dat DeltaManager is langzamer, maar betrouwbaarder in geval van een storing.
JBoss biedt ook een eenvoudige manier om sessiereplicatie mogelijk te maken: door de applicatie te markeren als distribueerbaar in de web.xml descriptor.
Servicereplicatie voor IIS kan worden bereikt met DFSR (Replicatie van gedistribueerd bestandssysteem).
Stap 1: Creëer een virtueel IP-adres #
Eens RELIANOID Load Balancer is geïnstalleerd, het is nodig om een nieuw virtueel IP-adres te maken, selecteer in het hoofdmenu Netwerk->Virtuele interfaces->Acties->Maken
Zoek de fysieke interface waar u een virtueel IP-adres wilt maken
Typ de naam en het adres van je nieuwe virtuele IP-adres. Sla het op door op de knop 'Aanmaken' te klikken.
Stap 2: Maak een http-farm #
Een farm of cluster is een verzameling computerservers die serverfunctionaliteit bieden en de capaciteit aanzienlijk vergroten. Hoewel we de termen boerderij en cluster als synoniemen is er een klein verschil tussen hen. Als we het hebben over een cluster, er wordt redundantie geïmpliceerd, maar als we het hebben over een boerderijEr kan al dan niet sprake zijn van redundantie. In ons geval, aangezien we een tolerante configuratie hebben voor storingen, zouden we 'farm' of 'cluster' als synoniemen kunnen gebruiken.
Op deze manier verhogen we, door een applicatieserverfarm op te zetten, de prestaties en de fouttolerantie, wat essentieel is voor hoge beschikbaarheid. Om dit te bereiken, gaan we naar LSLB->Boerderijen->Maken
Selecteer een naam en HTTP als profiel. We kiezen voor het http-profiel omdat dit de beste optie is voor webservices, omdat we hiermee opties voor het wisselen van inhoud kunnen bieden onder hetzelfde virtuele IP-adres en dezelfde poort.
Er worden nog twee opties weergegeven. Selecteer het virtuele IP-adres dat in stap 1 is aangemaakt en een poort (in het voorbeeld kiezen we 80, omdat dit de standaard is voor het HTTP-protocol) en klik op de Opslaan knop.
Stap 3: Voeg de services toe #
Het hoofddoel is om verschillende applicaties vanaf verschillende applicatieservers te bedienen via hetzelfde virtuele IP-adres en dezelfde poort. Zodra de farm is aangemaakt, moeten we deze bewerken om nieuwe services toe te voegen. In ons voorbeeld stellen we drie services in. Eén voor elke applicatieserver. Klik op de knop boerderij bewerken.
Verschillende details van de farm kunnen worden bewerkt. In het voorbeeld gaan we de standaardwaarden en de services instellen.
In de bovenstaande schermafbeelding hebben we Een service toegevoegd met servicenaam “app1”.
Omdat we alle drie de services via dezelfde farm benaderen, moeten we onderscheid maken tussen deze services. Om dit te doen, kunnen we een waarde instellen voor URL-patroonMet dit veld kunt u een webservice bepalen op basis van de URL die de client aanvraagt via een specifiek URL-patroon. In ons voorbeeld typen we ^/app1.*, ^/app2.* en ^/app3.*. Klik op wijzigen om wijzigingen toe te passen.
Houd er rekening mee dat de backend het adres moet vinden http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (in ons voorbeeld http://192.168.56.200/app1), om dit te garanderen, moet de context in uw applicatie worden ingesteld. In onze voorbeelden zullen we de context instellen /app1 besteld, Kater, /app2 besteld, jboss en /app3 besteld, IIS. De Context vertegenwoordigt een webapplicatie die draait binnen een specifieke virtuele host. In het specifieke geval van IIS, contexten worden applicaties genoemd.
In dit voorbeeld hebben we twee backendservers per applicatie. We selecteren IP, poort (standaard 8080 voor Kater en JBossen 80 voor IIS), time-out en gewicht en klik op backend opslaan knop.
We willen servercommutatie vermijden: als we tijdens onze sessie van de ene server naar de andere springen, zal er efficiëntie-, data- en zelfs communicatieverlies optreden. Om dit te voorkomen, Volharding sessie moet worden geconfigureerd. We zullen ervoor kiezen om een sessie te onderhouden op sessie-ID, dus dit betekent dat we tijdens een sessie verbinding maken met slechts één server.
In de algemene serviceparameters kunnen we nu het persistentiesessieveld wijzigen in COOKIE: een bepaald cookie
kies JSESSIONID als persistentiesessie-ID voor Tomcat en Jboss en SessionID voor IIS, klik dan op Bijwerken onderaan de pagina.
Nu moeten we onder dezelfde farm nog twee services toevoegen op dezelfde manier als app2 voor app1 en app2, inclusief de persistentiecookie voor JBoss (de standaard heet JSESSIONID) en IIS (de standaardcookie voor ASP.NET is ASPXAUTH), maar u kunt de cookie gebruiken die de applicatie nodig heeft. Elke service in de farm heeft zijn eigen backends die gedeeld kunnen worden tussen farms of farmservices.
Houd er rekening mee dat de volgorde van de services belangrijk is om te zorgen dat deze overeenkomen met het juiste URL-patroon.
Ten slotte moeten we de wijzigingen toepassen door de boerderij opnieuw op te starten.
Gefeliciteerd! U hebt uw applicatieservers geconfigureerd met hoge beschikbaarheid. U kunt deze openen door te typen http://[VIRTUAL_IP]:[PORT]/[YOUR_SERVICE] (in ons voorbeeld http://192.168.56.200/app1, http://192.168.56.200/app2 or http://192.168.56.200/app3).
Stap 4: Geavanceerde controle #
We zullen nu de farmguard instellen om geavanceerde gezondheidscontroles uit te voeren op de backends, om er zeker van te zijn dat ze actief zijn en dat de applicatie correct functioneert, en niet alleen maar een TCP-poortcontrole. Zoek alstublieft de Boerderijbeschermer binnen jouw Dienst die wij in stap 3 hebben ingesteld. Klik op Gebruik FarmGuardian om back-endservers te controleren, kunt u ook de tijd tussen controle en uiteindelijk wijzigen in de Commando om te controleren tekstvak, typ de volgende opdracht.
check_http -I HOST -w 10 -c 10 -t 10 -e 200 -p POORT -s ' '
Klik ten slotte onderaan de pagina op Bijwerken.
Het bevel check_http test HTTP-verbindingen met de opgegeven host. In ons geval gebruiken we de volgende opties:
-IK ORGANISEER: De token HOST wordt vervangen door het gedefinieerde backend-IP-adres.
-w 10: reactietijd tot waarschuwingsstatus: 10 seconden
-c 10: reactietijd op kritieke status: 10 seconden
-t 10: 10 seconden voordat de verbinding wordt verbroken
-e 200: verwacht de string 200 in de status van het serverantwoord
-p POORT: De tokenPOORT wordt vervangen door de gedefinieerde backend-poort.
-S ' ': string die u in de inhoud kunt verwachten is ' '
Wat deze opdracht dus doet, is controleren of we een 200 OK-antwoord krijgen en of de antwoordopdracht de tekenreeks ' bevat. '. We selecteren deze string omdat deze aan het einde van het antwoord staat. Op deze manier kunnen we garanderen dat we een volledig antwoord van de backends krijgen.
Stap 5: Hoge beveiliging #
Veilige communicatie kan eenvoudig worden opgezet met RELIANOID Load Balancer, dus de volgende stap is het inschakelen van de HTTPS-listener: Op de Bewerk de globale parameters van het bedrijf scherm, wijzig dan de farmlistener van HTTP naar HTTPS en de virtuele poort naar 443.
Nu zijn de diensten toegankelijk door te typen https://[Your_virtual_ip]/[yourappservice] in uw browser.
Er is nu sprake van beveiligde communicatie, maar we kunnen verder gaan door de HTTPS-parameters te configureren: zoek binnen de globale farmparameters de HTTPS-instellingen sectie. We kunnen de cijfers naar Hoge beveiliging.
Het veld 'ciphers' wordt gebruikt om een lijst samen te stellen met cijfers die door SSL-verbindingen worden geaccepteerd om de SSL-verbinding te beveiligen. Door te selecteren Hoge beveiliging, zullen we de cijfers standaard instellen.
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
Een andere optie is de HTTPS-certificaten beschikbaar: er wordt een lijst met certificaten getoond die geselecteerd zijn voor de huidige farm (alleen voor HTTP-farms, wat in ons geval is). We kunnen er een uit de lijst selecteren en erop klikken Toevoegen. Klik ten slotte op wijzigen en start de boerderij opnieuw om wijzigingen toe te passen.
Voor meer informatie, zie HTTP-profielboerderijen.
HTTPS kan ook worden ingeschakeld op uw applicatieservers. Als dit het geval is, moet u de optie inschakelen HTTPS-backends.










