I vissa typer av distributioner, särskilt där rika dynamiska applikationer förlitar sig på en stor databas, kan separering av databasservern från applikationsservern tillåta din applikation att skalas och rymma en mycket större användarbas. Genom att utse en separat server som ska användas enbart av MySQL kommer applikationens webbserver att kunna leverera innehåll mer effektivt, medan databasservern kommer att kunna svara snabbare.
Som ett resultat kan dessa databasservrar mer effektivt stödja distributioner med hög trafikbelastning. Detta kan hjälpa dig att uppnå högre prestanda för en rad applikationer, från populära paket som WordPress och Drupal till anpassade applikationer skrivna i Ruby on Rails och Django.
Förutsättningar
I den här guiden kommer vi att använda två linoder. Observera att detta är annorlunda än att bara distribuera en andra konfigurationsprofil på ditt befintliga Linode-konto, eftersom båda servrarna måste köras samtidigt. Vi antar att du har följt guiden Konfigurera och säkra en beräkningsinstans för båda linoderna.
- För Linode som kör webbservern, hädanefter applikationsservern, bör du redan ha Apache (eller din föredragna webbserver) installerad. För en ny installation, följ LAMP-guiden för din distribution. LAMP-guiden innehåller MySQL, som du inte behöver installera.
- Den dedikerade MySQL Linode bör ha MySQL installerad. Följ installationsguiden för MySQL-databasservern för din distribution. Tänk på att du inte behöver installera Apache på den dedikerade MySQL-servern.
Du kommer också att vilja konfigurera alias för den privata IP-adressen för varje Linode. Du kan följa Linux Static IP Configuration guide för hjälp med detta. Det är viktigt att notera att båda linoderna ska finnas i samma datacenter för att privata nätverk ska fungera. Detta gör det möjligt för servrarna att kommunicera utan att trafiken räknas mot din månatliga bandbreddskvot. Det är nödvändigt att starta om båda linoderna efter att ha konfigurerat de privata IP-adresserna.
Redigera /etc/hosts
Du kommer att vilja skapa värdnamn för varje maskin så att du kan hålla reda på dem senare. Detta sparar också arbete om du skulle hamna i en situation där du behöver ändra IP-adressen till servern. Redigera /etc/hosts
filen för att inkludera den privata IP-adresser för varje Linode. Använd följande utdrag från ett exempel /etc/hosts
fil som ett exempel:
- Fil:/ etc/värdar
1
> 127.0.0.1 localhost 192.168.192.168 mysql.example.com mysql 192.168.192.169 app.example.com app
Kom ihåg att ersätta 192.168.192.168
och 192.168.192.169
med de faktiska privata IP-adresserna.
Även om det här steget är valfritt, konfigurerar du hosts
poster gör att du kan undvika hårdkodning av programkonfigurationer till specifika IP-adresser. Du kommer snabbt att kunna migrera dina applikations- och databasservrar till alternativa servrar om du någonsin måste ändra dina IP-adresser.
Konfigurera MySQL-servern
Nästa steg är att ändra /etc/mysql/my.cnf
fil på din MySQL-server för att lyssna på din privata IP-adress. Använd din favoritredigerare och öppna /etc/mysql/my.cnf
fil och infoga värdnamnet för MySQL-databasen. För det här exemplet är MySQL-databasens värdnamn mysql
. Leta reda på bind-address
rad:
- Fil:/ etc/mysql/my.cnf
1
bind-address = mysql
Du kan alternativt använda den privata IP-adressen. Spara filen och kör följande kommando för att starta om MySQL-demonen:
/etc/init.d/mysql restart
Bevilja databasåtkomst
På den dedikerade databasservern måste du skapa ett databasanvändarnamn och lösenord med åtkomsträttigheter. Detta är möjligt genom MySQL-prompten. Ge följande kommando:
mysql -u root -p
Detta ger en MySQL-kommandorad. Ge följande kommandon och ersätt app
med värdnamnet för den Linode som kör applikationsservern och ett starkt lösenord i stället för "LÖSENORD":
CREATE DATABASE webapplications;
GRANT ALL ON webapplications.* TO [email protected]'app' IDENTIFIED BY 'PASSWORD';
I det här skedet kan din applikation framgångsrikt komma åt fjärrdatabasen och du är redo att börja använda databasservern.
Använda databasservern
Från och med denna tidpunkt är allt konfigurerat och din databasserver är redo att acceptera en anslutning från din webbserver. Du bör nu kunna rikta din applikation mot MySQL-servern utan incidenter. Det är viktigt att komma ihåg att när du ställer in webbapplikationer för att fungera med en fjärransluten MySQL-server måste du skapa en användare med rättigheter till fjärrsystemet (som visas ovan).
Att använda MySQL på en separat databasserver är mycket likt att köra en lokal databasserver. Vanligtvis kräver applikationer att du anger "databasvärdnamn", och konventionellt har databasservrar som körs på den lokala maskinen värdnamnet localhost
. När du separerar databas- och applikationsservrar måste du ange värdnamnet, enligt ovan, i applikationen.
Till exempel, inWordPress-databasinställningar finns i wp-config.php
fil, och värdnamnet anges i följande format:
- Fil:wp -config.php
1 2
/** MySQL hostname */ define('DB_HOST', 'mysql');
Observera att metoden för att ställa in värdnamnet varierar från applikation till applikation. Dessutom kan du ersätta databasserverns specifika IP-adress istället för att använda värdnamnet som konfigurerats i /etc/hosts
ovan.
Överväg också att hänvisa till externMySQL-webbplatsen för MySQL-specifika frågor och relaterad hjälp.
Mer information
Du kanske vill konsultera följande resurser för ytterligare information om detta ämne. Även om dessa tillhandahålls i hopp om att de kommer att vara användbara, vänligen observera att vi inte kan garantera noggrannheten eller aktualiteten hos externt värdmaterial.
- Webbapplikationsguider
- Web Application Frameworks
- Databashanteringssystem