Så här ställer du upp en skalbar, e-handelsklar WordPress-sida med ClusterCS

När en webbplats, till exempel en onlinebutik, är kärnan i ditt företag kan webbplatsens förmåga att betjäna kunder genom trafikspetsar och plötsliga servernes misslyckanden betyda skillnaden mellan en stor seger och en frustrerande förlust. 

Så när du ställer in en enda virtuell server för jobbet är det enklare än någonsin, det är värt att ta några ögonblick att överväga ett hög tillgänglighetskluster. I ett kluster hanteras de olika delarna av serverns arkitektur istället för att köra allt på en maskin genom separata serverinstanser. I en sådan inställning kan du skala servern genom att lägga till fler arbetare när belastningen växer och hålla servern igång även om en eller flera av arbetarna bryts av någon anledning.

När du är väl förberedd kan du vara säker på att årets Black Friday-försäljning eller en plötslig funktion inte kommer att ta med din webbutik.

I den här handledningen lär du dig att använda ClusterCS och Amazon Web Services för att skapa ett skalbart kluster av servrar och använda den för att vara värd för en WordPress-webbplats för en WooCommerce-baserad e-handelswebbplats.

1. Ställ in ditt ClusterCS-konto

ClusterCS är en kontrollpanel för servrar i molnet. Det ger kraften i vanliga kontrollpaneler till dina virtuella och dedikerade servrar, samlar dem alla bakom ett enda gränssnitt. Verktyget skapades ursprungligen för hantering av värdkonton som förvaltas av Soft Dreams, företaget bakom det, så det har testats väl i verkliga produktionsmiljöer.

ClusterCS stöder flera serverns applikationer som den e-handelsoptimerade WordPress-webbplatsen som vi ska bygga i den här handledningen, samt upprätthålla enskilda servrar.

För att komma igång, besök ClusterCS webbplats och skapa ett konto.

Ett gratis konto låter dig hantera en enda server och upp till fem separata domäner som körs på den. En gruppuppsättningssplittring på flera servrar kräver ett betald konto, men många av de steg du ser i handledningen är också tillämpliga på en enstarts-inställning.

2. Starta några virtuella servrar

Som en molnbaserad kontrollpanel arbetar ClusterCS med någon virtuell eller dedikerad server: du kan använda den för att styra servrar på Digital Ocean, Amazon Web Services (AWS) eller till och med på en virtuell maskin som körs på din bärbara dator.

I den här handledningen går vi med AWS. Om du inte har ett AWS-konto än, anmäler du dig till ett. Logga sedan in på AWS-konsolen för att skapa serverns instanser för vår webbplatsinställning.

Den inställning vi ska skapa i den här handledningen är som följer:

  • Lastbalanserare (Ib): Denna instans kommer att vara den utåtvända delen av klustret. Det kommer också att hålla filerna till din webbplats.
  • Två (eller flera) applikationsservrar (App1, App2): Dessa instanser kommer att köra webbservern. Om du har mer än en applikationsserver gör inställningen mer eftergivlig - om man går ner kan de andra fortfarande betjäna programmets sidor. Dessutom lägger du till fler applikationsservrar är ett snabbt sätt att svara på en ökning av trafiken.
  • Databasserver (db): Att ha databasen separat från appservrarna ger en säkerhetsnivå samtidigt som databasen är tillgänglig för alla servrar som använder den.

Låt oss få servrarna igång!

Steg 1: Skapa en säkerhetsgrupp

När du startar servrar för ett kluster är det viktigt att se till att de kan prata med varandra och att ClusterCS kan nå dem med SSH. 

På Amazon Web Services görs brandvägskonfiguration med hjälp av a Säkerhetsgrupp. Vi skapar en rätt i början men om du har anslutningsproblem när som helst kan du alltid återvända för att verifiera och ändra inställningarna. 

Klicka på på AWS EC2-administratörskonsolens vänstra menyn Säkerhetsgrupper. Klicka sedan på Skapa säkerhetsgrupp

I popupen som öppnas, ge din säkerhetsgrupp ett namn och en beskrivning. Klicka sedan på Lägg till regel att lägga till nya regler en efter en.

Tillåt först SSH-åtkomst från ClusterCS-IP-adresserna 85.9.60.46/32 och 193.226.133.91/32. Tillåt sedan HTTP och HTTPS-åtkomst (portar 80 och 443) från överallt så att dina kunder kan komma åt din webbplats.

På den här tiden ser din säkerhetsgruppsinstallation ut så här:

Klick Skapa för att spara ändringarna.

Nu när du har skapat säkerhetsgruppen har den ett ID, som du kan använda för att konfigurera åtkomst mellan klustrets serverinstanser.

I listan över säkerhetsgrupper väljer du den du just skapat och öppnar den inkommande flik. Du får se de regler du just skapat. Kopiera säkerhetsgruppens ID (en sträng som börjar med sg-) och klicka på Redigera knappen för att ändra reglerna.

Lägg till en ny regel med säkerhetsgruppens ID som trafikkälla. Du kan antingen välja att tillåta all TCP-trafik från den här källan eller, om du föredrar att vara mer specifik, använd följande lista över portar: 80, 443, 25, 110, 143, 465, 587, 993995, 2049, 111, 892, 662, 32803, 212049, 111, 892, 662, 32769, 80808081, och 8082.

Nu ser din konfiguration ut så här:

För att kunna ansluta till AWS-instanser från din dator, lägg till en SSH-regel för din IP-adress. AWS-konsolen har ett alternativ för detta ("Min IP"), så du behöver inte leta upp din IP.

Slutligen, för att tillåta FTP-åtkomst för uppladdning av filer till serverklysset, lägg till portar 21 och  50500-50900.

När det är klart är du redo att starta några servrar.

Steg 2: Starta fyra AWS EC2 Server-instanser

Med din säkerhetsgrupp på plats är det dags att starta AWS-instanserna för klustret. AWS ger dig många alternativ för att anpassa de virtuella servrarna, men oftast är standardalternativen ett bra val.

Återgå till EC2 Dashboard och klicka på Starta Instance knapp.

Genom att klicka på knappen startas en sju stegs guide för att starta servern. 

I steg 1 får du välja basbilden för din virtuella server. Välj det första alternativet, Amazon Linux AMI, genom att klicka på Välj knappen bredvid den.

I steg 2 väljer du en förekomsttyp som passar dina webbplatsers behov. en mindre instans kommer inte att kunna hantera så mycket trafik som en större, men en större blir dyrare. Tänk på de roller maskinerna kommer att spela i ditt kluster. Till exempel kan du snabbt lägga till nya applikationsservrar som svar på ökad serverbelastning, men lägga till databasresurser är mycket svårare. Därför är det en bra idé att köra databasen på en kraftfullare server med mer minne än på appservrarna.

I steg 3 till 5 i startguiden går du igenom alternativen för att se om det finns något du vill ändra - men troligtvis kommer standardalternativen att vara bra för installationen.

I steg 6 väljer du alternativet Välj en befintlig säkerhetsgrupp, och välj den säkerhetsgrupp vi definierade ovan. 

Slutligen granska dina inställningar och klicka Lansera för att starta instanserna.

Som sista steg kommer AWS att be dig att ange och ladda ner ett SSH-nyckelpar för åtkomst till servrarna.

Välj Skapa ett nytt nyckelpar alternativet och ange ett beskrivande namn för nyckelparet. Klicka sedan Hämta nyckelpar att ladda ner den privata nyckelfilen. 

Spara nyckeln på ett säkert ställe på din dator. Jag gillar att placera alla mina SSH-nycklar i  ~ / .Ssh katalog, men du kan välja vilken plats som helst.

När du har laddat ner nyckeln, Starta instanser knappen blir klickbar. Klicka på det och vänta några minuter innan instanserna börjar.

Om du startar instanser en efter en, upprepa processen för nästa instans tills alla fyra servrarna för klustret är igång.

Steg 3: Fäst elastiska IP-adresser till dina instanser

AWS tilldelar IP-adresser till dina instanser när du startar dem. Att stoppa en instans ger ut sin IP-adress. Eftersom ClusterCS bygger på serverns IP-adresser för att ansluta till dem kan det leda till problem om du av någon anledning behöver starta om dina instanser.

För att komma över det här problemet kan du använda AWS: s Elastic IP Addresses-funktion. 

En elastisk IP-adress är en permanent IP-adress som du kan ansluta till någon av dina serverns instanser. Genom att använda den adressen i din ClusterCS-konfiguration kan du hålla den peka på förekomsten, även om förekomsten är stoppad.

Klicka på Elastiska IP-adresser i AWS Console vänster sida meny. Klicka sedan på Tilldela ny adress knapp.

Välj VPC som Omfattning, och klicka Allokera. En IP-adress tilldelas omedelbart för dig att använda.

Högerklicka på IP-adressen och välj Associerad adress att koppla IP till en EC2-server instans. 

Klicka på Exempel textfält. Välj sedan en instans från en rullgardinsmeny med alla dina instanser. Slutligen klickar du på Associera. Upprepa processen för resten av dina EC2-instanser.

Nu kan dina servrar nås med sin elastiska IP-adress, även efter att de har startats om.

Steg 4: Verifiera att du kan komma åt servrarna

När dina EC2-instanser är igång, innan du flyttar till ClusterCS, är det bra att verifiera att du kan ansluta till dem.

Först ändrar du SSH-nyckelens behörigheter:

chmod 400 ~ / .ssh / key_name.pem

Därefter letar du upp förekomstens offentliga IP-adress (IPv4 Public IP) Från EC2 Dashboard:

Anslut sedan till den, till exempel med kommandoradsklienten (eller PuTTY om du använder Windows):

ssh -i ~ / .ssh / tutorial-clustercs.pem [email protected]

Om du har problem med att ansluta, gå tillbaka till säkerhetsgruppens inställningar och se till att alla nödvändiga portar är tillgängliga. 

När du ser att du kan ansluta till servern är du redo att flytta över till ClusterCS för att ställa in programvaran för servrarna i ditt kluster.

3. Ställ in Server Cluster

Serverns instanser är nu igång. Det är dags att konfigurera dem att göra sin del i att köra din e-handelswebbplats som delar av ett multiserverkluster. Vi gör det med ClusterCS-kontrollpanelen.

ClusterCS-administratorn är uppdelad i två delar: servrar och domäner.

Serverns avsnitt definierar det underliggande systemet: serverkonfigurationen och programvaran som körs på en eller flera maskiner som bildar den. Domänen del, som vi kommer att undersöka i en bit, anger kundkonton och webbplatser som körs ovanpå konfigurationen på låg nivå.

Steg 1: Lägg till serverns instanser i klustret

Klicka på Hantera servrar för att börja konfigurera klustret. Om du använder den fria versionen kommer du inte att kunna skapa ett kluster, men stegen i att konfigurera en enda server liknar vad vi gör i den här delen av handledningen.


Klicka på Lägg till Cluster

Sedan, på nästa sida, bläddra ner till Lägg till ny server sektion. Där ser du några instruktioner, följt av ett formulär.

För att lägga till den första servern i klustret fyller du i formuläret med följande information: 

  • Server IP: Serverns offentliga IP-adress. Du kan hitta den från EC2 Dashboard.
  • SSH-porten: 22
  • Användare: ec2 användaren
  • Typ av inloggning: SSH-nyckel
  • Värdnamn: Ett namn som gör det enkelt för dig att hålla reda på vad maskinen gör. Fältet används bara som en identifierare, så du kan t.ex. använda något namn du vill ha, Ib för lastbalansern och App1 för den första applikationsservern och så vidare.

När du väljer "SSH-nyckel" som inloggningstyp visas ett textområde för inmatning av SSH-tangenten. Kopiera innehållet i .pem fil du laddade ner från AWS när du startade maskinerna och klistra in den i det här textområdet. Lämna SSH-nyckellösenord fältet tomt.

När alla data är på plats klickar du på Nästa.

ClusterCS kommer nu att ansluta till servern och verifiera att den matchar inställningens krav. När checken är klar visas följande resultat.

Klicka på Lägg till server i Cluster Pool.

Du ser att servern har lagts till i listan över servrar som kommer att kompensera ditt kluster. 

Bläddra ner och upprepa processen för de återstående tre servrarna. 

Bara då klickar du på Fortsätt till Setup att konfigurera klustret och de tjänster du vill köra på sina olika servrar.

Steg 2: Konfigurera klustret

Nu när alla servrar är tillgängliga för ClusterCS att använda kan du börja den roliga delen av att välja roller för var och en av servrarna. 

Ge din inställning ett namn och välj ett recept, en mallkonfiguration, som ska användas som grund för konfigurationen.

ClusterCS levereras med en optimerad utgångspunkt för PHP-baserade applikationer som heter  Smart webbserver (optimerad LAMP). På en enda maskininstallation där hela konfigurationen körs på en enda server är det här receptet klart att användas utanför lådan.

I en gruppkonfiguration behöver du göra lite mer konfiguration.

Klick Anpassa för att öppna en detaljerad vy. Du kommer att se följande lista över "lager", kombinationer av programmoduler som tillsammans ger servrarna sina möjligheter. All funktionalitet inom ett lager kan konfigureras, och du kan också skapa nya lager och lägga till nya program på befintliga.

Börja från det första lagret, brandvägg, avklicka på Hantera länken bredvid titeln. Du får se följande vy för att ange detaljerna för det här laget. 

På vänster sida kan du välja vilka moduler som utgör lagret (vi använder standardmodulen så att du kan lämna den delen som den är). 

På höger sida kan du välja de servrar som ska köra detta lager. En brandvägg är något som varje server i klustret behöver ha, så välj alla fyra servrar genom att klicka på deras namn.

Klicka sedan Spara för att återgå till klusterkonfigurationsvyn. Nu ser Firewall-skiktet ut så här:

Gå igenom resten av lagren i ditt kluster och skapa följande konfiguration:

Lager servrar
brandvägg Ib, db, App1, App2
Smart Traffic Manager Ib
Webbserver App1, App2
Databas db
E-post Använd inte, ta bort från konfiguration
Webmail Använd inte, ta bort från konfiguration
Lagring Ib, App1, App2
verktyg App1, App2

I denna handledning finns det inget behov av e-post, så jag tog bort de e-postrelaterade lagren från konfigurationen. Om du vill använda e-post i din inställning föreslår jag att du lägger till en separat serverinstans för den. På så sätt kommer problem med din webbserver inte att störa din e-post eller vice versa.

Jag aktiverade lagringsskiktet på lastbalansmaskinen liksom på appservrarna. Senare när vi konfigurerar webbplatsen väljer vi Ib servern som den som har sina filer. De två andra maskinerna kommer att monteras på den med hjälp av NFS, så att de också kommer att få tillgång till data. På så sätt kommer din webbplats inte att vara beroende av någon enskild appserver, och du kan skala dem upp och ner fritt.

När allt ser bra ut, klicka på Spara för att spara din konfiguration och starta installationsprocessen på servrarna. 

Inställningen tar ungefär 20 minuter att slutföra, beroende på storleken på ditt kluster.

4. Konfigurera domänen

Du har nu skapat ett serverkluster med en databasserver, två applikationsservrar och en lastbalansering som noggrant dirigerar trafik till de olika instanserna. Det är dags att börja använda klustret genom att skapa en webbplats för att springa ovanpå.

Klicka på domäner i ClusterCS toppmeny.

Klicka sedan på Lägg till domän.

På den här skärmen anger du hur klustret (eller en enda server) används för din domän. 

  • Domän namn: Domännamnet på din webbplats. Du kan antingen konfigurera domänens DNS-inställningar utanför ClusterCS (peka domänen till din lastbalansinstanss offentliga IP-adress) eller kolla på Aktivera DNS-hantering alternativ längst ner på skärmen och använd ClusterCS namnservrar.
  • Användarnamn / Lösenord: Användarnamnet och lösenordskombinationen du (eller din kund) kommer att använda för att komma åt webbplatsen med hjälp av FTP.
  • Inloggningstyp: Den metod du vill använda (eller låta dina kunder använda) för åtkomst till servern. Du kommer fortfarande att kunna ansluta till de underliggande AWS-instanserna med SSH-nyckelmetoden, men det är nog inte något du vill att dina kunder eller andra webbplatsadministratörer ska göra.
  • server: Servern eller serverns klyftan domänen körs på. Välj det kluster du just skapat.
  • Lagringsplats: Servern där webbplatsens filer kommer att lagras. Välj lastbalansservern (t.ex.. lb WooCommerce Cluster) som förklarats tidigare.
  • Inkörsport: Serverns förekomst i klustret genom vilken trafik som kommer till din webbplats. Detta bör peka på lastbalansinstansen som kan styra trafiken till rätt servrar inom klustret.
  • IP: Den offentliga IP för lastbalansern

När installationen ser bra ut, klicka på Lägg till.

När den orange "In progress" texten ändras till "Aktiv", är domänen redo att användas. Detta steg tar vanligtvis bara några minuter.

Valfritt: Konfigurera SSL

På vilken webbplats som helst som hanterar känslig kundinformation, såsom människors order i en webbutik, rekommenderas att använda SSL för att kryptera trafiken mellan användaren och servern.

Med ClusterCS är SSL lätt att ställa in. Klicka på på Dashboard-domänen SSL. Du kan se tre olika sätt att konfigurera SSL.

Vi går med Låt oss kryptera, en fri, allmänt betrodd certifikatmyndighet som stöds av stora organisationer som Mozilla och skapades för att påskynda webbläsarens rörelse för att säkerställa surfning.

Klicka på Installera Låt oss kryptera för att starta installationen.

Ange certifikatet ett namn, ange din e-postadress och välj de domännamn du vill skapa certifikat för. Kolla Förnya automatiskt kryssrutan så att du alltid har ett giltigt SSL-certifikat.

Klicka sedan på Start knappen, acceptera popup-popupen som visas och vänta på att certifikatgenerationen ska slutföras.

När certifikatet är klart visas en skärm med informationen. 

Låt oss kryptera SSL-certifikat är nu klart att använda. 

Konfigurera serverklypskärmens brandvägg för att tillåta åtkomst till lastbalansern från port 443, och din webbplats är redo att acceptera HTTPS-trafik.

servrar Dashboard bredvid klustret klickar du på brandvägg. Bläddra sedan ner till botten av sidan för att lägga till en ny regel. 

Ställ in den nya brandväggsregeln med hjälp av följande information:

  • server: Ib (din lastbalansinstans)
  • Protokoll: någon
  • stat: NÅGON
  • Källa IP: några
  • (Källa) Portspektrum: Allt
  • Destination IP: några
  • (Destination) Portspektrum: Exakt
  • Hamn: 443
  • Verkan: Tillåt
  • Aktiva: Kontrollerad

Klicka på Lägg till knappen för att lägga till konfigurationen och sedan på Tillämpa knappen för att utföra ändringarna i ditt serverkluster.

5. Ställ in WordPress

Du är nu redo att konfigurera WordPress. Skönheten i denna ClusterCS-inställning är att även om du använder flera servrar skiljer sig installationen inte från vad du skulle göra med en enda server eller delad värd.

Steg 1: Skapa en databas för din e-handelswebbplats

Börja med att skapa databasen. I domäner dashboard, välj databaser. Klicka sedan på Lägg till databas.

På nästa sida anger du ett namn för din databas (till exempel, wordpress) och klicka Skapa.

På nästa sida kommer du märka att databasen nu har lagts till.

Klicka på Lägg till ny användare knappen för att skapa en ny användare. 

När installationen frågar dig att välja värd kan databasanvändaren ansluta databasen från, välj Anyhost. Detta gör det möjligt för applikationsservrarna att ansluta till databasen, även om de körs på separata servrar.

När du har lagt till användaren klickar du på Associera bredvid användarens namn för att ge användaren tillgång till den databasen.

På nästa sida kan du välja behörigheterna för användaren i den här databasen. Klicka på Markera alla för att ge användaren fullständig tillgång till databasen. Klicka sedan på Associerad användare att tillämpa dessa ändringar.

Databasen är nu klar att användas. 

Steg 2: Installera WordPress 

Ladda ner den senaste WordPress-versionen och använd FTP (med användarnamnet och lösenordet du angav när du skapade domänen) för att ladda upp den till din nya webbplats. Om du redan har konfigurerat dina DNS-inställningar, ansluter du till domänens webbadress. Du kan också använda belastningsbalansinstansens offentliga IP-adress.

När du har laddat upp WordPress till din webbplats public_html katalog, öppna webbplatsens URL i din webbläsare och kör WordPress-installationen.

Använd följande databasinformation:

  • Databas namn: Namnet på den databas du just skapat.
  • Användarnamn: Namnet på databasanvändaren du just skapat.
  • Lösenord: Lösenordet du valt för databasanvändaren.
  • Databasvärde: The privat IP för dina db-server instanser. Du hittar denna information på AWS EC2 Dashboard. Privata IP-adresser används för server-till-server kommunikation inom Amazonas virtuella privata moln.

När din WordPress-installation är klar fortsätter du genom att ställa in WooCommerce och andra plugins och teman som du vill använda på din e-handelsplats. 

Kom tillbaka för några slutliga optimeringar och lär dig hur du skalar upp ditt kluster upp och ner.

6. Använd ClusterCS för att optimera din WordPress-inställning

Du har nu konfigurerat en multi-server WordPress-webbplats på ClusterCS. Webbplatsen är säker, stabil, välorganiserad och lätt skalbar. Men vad gör du exakt när din webbutik eller annan webbplats får mycket trafik och det är dags att skala upp tjänsten?

Steg 1: Lägg till App Servers

Här ser du kraften i en klustringsinstallation: tack vare det arbete vi gjorde framåt, när du behöver mer bearbetningseffekt kan du helt enkelt lägga till fler servrar i klustret.

Först lansera en ny servern förekomst på AWS, se till att den använder samma SSH-nyckelpar och tillhör samma säkerhetsgrupp som de andra servrarna i klustret.

Därefter, i ClusterCS hantera servrar Dashboard, klicka Hantera för att uppdatera klustrets inställningar.

Bläddra hela vägen ner och klicka på Lägg till servrar.

Upprepa stegen för att lägga till en server i klusterpoolen ovanifrån. 

Klick Fortsätt att installera och konfigurera lagren för servern. Välj alla samma program som på App1 och App2 servrar. Klicka sedan Spara för att tillämpa ändringarna och vänta tills konfigurationen är klar. 

Din webbplats kör nu på tre applikationsservrar istället för två. 

Steg 2: Caching

Så enkelt som att lägga till nya servrar i klustret är det inte det enda du kan göra för att svara på växande serverkrav. I Fart avsnittet i Dashboard i ClusterCS Domains kan du konfigurera regler för hur förfrågningar som kommer till din webbplats ska hanteras.

När du använde receptet "Smart webserver" för att starta klustret, har du redan några optimeringar på plats: medan PHP-trafik hanteras av Apache finns det en regel, "Statiska filer till Lighttpd", som berättar lastbalansen att rutt förfrågningar om statiska filer som bilder till Lighttpd för att ta lite av Apache.

Under den här regeln kommer du att märka en sektion för att konfigurera dina egna konfigurationssatser. 

Det finns många saker du kan göra med det här verktyget, men vi tittar på en av de mest effektiva: caching en enda sida med Nginx. 

Fyll i följande information:

  • Ange namn: Ge din konfiguration ett beskrivande namn, till exempel "Cache Shop Front Page".
  • Operatör: Välj om alla villkor måste matchas för att regeln ska tillämpas (och) eller om det räcker om bara en gör (eller).
  • Betingelser: Lägg till så många villkor som du behöver för att ange regeln. Du kan skapa dina villkor baserat på sökväg, cookies, IP, metod, referrer, användaragent eller dynamiska värden. Välj i så fall väg och slutar med, och skriv in butikssidans sökväg, till exempel, /affär. Klicka sedan Lägg till.
  • Verkan: Välj åtgärd att göra för förfrågningar som matchar dessa villkor. För att cachera butikssidan, välj cache_with som åtgärd och Smart Traffic Manager / Nginx som dess parameter.

Klick Lägg till Set. Klicka sedan Kör att tillämpa ändringarna i ditt serverkluster.

Nu cachas sidan med Nginx, vilket innebär att mindre tid spenderas på att köra PHP-förfrågningar på Apache-servern.

Slutsats

I denna handledning lärde du dig hur du använder ClusterCS för att skapa ett kluster av AWS-servrar och ett WordPress-webbplats ovanpå det. Vi tittade också på sätt att skala upp webbplatsen upp och ner samt konfigurera caching för att hantera stora trafikspetsar.

Som du såg kan de här stegen också tillämpas på mindre konfigurationer på en server, eller alternativt, om du vill gräva djupare i detaljerna i din inställning, har ClusterCS flera alternativ för det också.

Besök ClusterCS webbplats och Knowledge Base för att lära dig mer. ClusterCS-personalen är också alltid redo att svara på dina frågor och hjälpa dig med din serverinställning.