sql >> Databasteknik >  >> RDS >> PostgreSQL

Hur man distribuerar mycket tillgänglig PostgreSQL med en enda slutpunkt för WordPress

WordPress är en programvara med öppen källkod som du kan använda för att skapa din webbplats, blogg eller applikation. Det finns många mönster och funktioner/plugins att lägga till i din WordPress-installation. WordPress är en gratis programvara, men det finns många kommersiella plugins för att förbättra den beroende på dina krav.

WordPress gör det enkelt för dig att hantera ditt innehåll och det är verkligen flexibelt. Skapa utkast, schemalägg publicering och titta på dina inläggsrevisioner. Gör ditt innehåll offentligt eller privat och säkra inlägg och sidor med ett lösenord.

För att köra WordPress bör du ha minst PHP version 5.2.4+, MySQL version 5.0+ (eller MariaDB) och Apache eller Nginx. Vissa av dessa versioner har nått EOL och du kan utsätta din webbplats för säkerhetsbrister, så du bör installera den senaste versionen som är tillgänglig för din miljö.

Som vi kunde se stöder WordPress för närvarande endast MySQL- och MariaDB-databasmotorerna. WPPG är ett plugin baserat på PG4WP plugin, som ger dig möjlighet att installera och använda WordPress med en PostgreSQL-databas som backend. Det fungerar genom att ersätta anrop till MySQL-specifika funktioner med generiska anrop som mappar dem till andra databasfunktioner och skriva om SQL-frågor i farten när det behövs.

För den här bloggen kommer vi att installera 1 Application Server med WordPress 5.1.1 och HAProxy, 1.5.18 på samma server och 2 PostgreSQL 11 databasnoder (Master-Standby). Allt operativsystem kommer att vara CentOS 7. Vi använder ClusterControl-systemet för databaser och belastningsbalanserare.

Detta är en grundläggande miljö. Du kan förbättra det genom att lägga till fler funktioner för hög tillgänglighet som du kan se här. Så låt oss börja.

Databasdistribution

Först måste vi installera vår PostgreSQL-databas. För detta antar vi att du har ClusterControl installerat.

För att utföra en distribution från ClusterControl, välj helt enkelt alternativet "Deploy" och följ instruktionerna som visas.

När vi väljer PostgreSQL måste vi ange Användare, Nyckel eller Lösenord och port för att ansluta med SSH till våra servrar. Vi behöver också ett namn för vårt nya kluster och om vi vill att ClusterControl ska installera motsvarande programvara och konfigurationer åt oss.

Efter att ha ställt in SSH-åtkomstinformationen måste vi definiera databasanvändare, version och datadir (valfritt). Vi kan också specificera vilket arkiv som ska användas.

I nästa steg måste vi lägga till våra servrar i klustret som vi ska skapa.

När vi lägger till våra servrar kan vi ange IP eller värdnamn.

I det sista steget kan vi välja om vår replikering ska vara Synchronous eller Asynchronous.

Vi kan övervaka statusen för skapandet av vårt nya kluster från ClusterControl-aktivitetsmonitorn.

När uppgiften är klar kan vi se vårt kluster på huvudskärmen för ClusterControl.

När vi har skapat vårt kluster kan vi utföra flera uppgifter på det, som att lägga till en lastbalanserare (HAProxy) eller en ny replik.

ClusterControlSingle Console för hela din databasinfrastrukturTa reda på vad mer som är nytt i ClusterControlInstallera ClusterControl GRATIS

Load Balancer-distribution

För att utföra en lastbalanseringsimplementering, i det här fallet, HAProxy, välj alternativet "Lägg till lastbalanserare" i klusteråtgärderna och fyll i den efterfrågade informationen.

Vi behöver bara lägga till IP/namn, port, policy och de noder vi ska använda. Som standard konfigureras HAProxy av ClusterControl med två olika portar, en läs-skriv- och en skrivskyddad. I läs-skrivporten är bara mastern UPP. I händelse av misslyckande kommer ClusterControl att marknadsföra den mest avancerade slaven och den kommer att ändra HAProxy-konfigurationen för att aktivera den nya mastern och inaktivera den gamla. På det här sättet kommer vi att ha automatisk failover i händelse av fel.

Om vi ​​följde de föregående stegen borde vi ha följande topologi:

Så vi har en enda slutpunkt skapad i applikationsservern med HAProxy. Nu kan vi använda denna slutpunkt i applikationen som en lokal värdanslutning.

WordPress-installation

Låt oss installera WordPress på vår applikationsserver och konfigurera den för att ansluta till PostgreSQL-databasen genom att använda den lokala HAProxy-porten 3307.

Installera först de paket som krävs på applikationsservern.

$ yum install httpd php php-mysql php-pgsql postgresql
$ systemctl start httpd && systemctl enable httpd

Ladda ner den senaste WordPress-versionen och flytta den till apache-dokumentroten.

$ wget https://wordpress.org/latest.tar.gz
$ tar zxf latest.tar.gz
$ mv wordpress /var/www/html/

Ladda ner WPPG-plugin-programmet och flytta det till wordpress-plugin-katalogen.

$ wget https://downloads.wordpress.org/plugin/wppg.1.0.1.zip
$ unzip wppg.1.0.1.zip
$ mv wppg /var/www/html/wordpress/wp-content/plugins/

Kopiera filen db.php till wp-content-katalogen. Redigera den sedan och ändra sökvägen för 'PG4WP_ROOT':

$ cp /var/www/html/wordpress/wp-content/plugins/wppg/pg4wp/db.php /var/www/html/wordpress/wp-content/
$ vi /var/www/html/wordpress/wp-content/db.php
define( 'PG4WP_ROOT', ABSPATH.'wp-content/plugins/wppg/pg4wp');

Byt namn på wp-config.php och ändra databasinformationen:

$ mv /var/www/html/wordpress/wp-config-sample.php /var/www/html/wordpress/wp-config.php
$ vi /var/www/html/wordpress/wp-config.php
define( 'DB_NAME', 'wordpressdb' );
define( 'DB_USER', 'wordpress' );
define( 'DB_PASSWORD', 'wpPassword' );
define( 'DB_HOST', 'localhost:3307' );

Sedan måste vi skapa databasen och applikationsanvändaren i PostgreSQL-databasen. På masternoden:

$ postgres=# CREATE DATABASE wordpressdb;
CREATE DATABASE
$ postgres=# CREATE USER wordpress WITH PASSWORD 'wpPassword';
CREATE ROLE
$ postgres=# GRANT ALL PRIVILEGES ON DATABASE wordpressdb TO wordpress;
GRANT

Och redigera filen pg_hba.conf för att tillåta anslutningen från applikationsservern.

$ Vi /var/lib/pgsql/11/data/pg_hba.conf
host  all  all  192.168.100.153/24  md5
$ systemctl reload postgresql-11

Se till att du kan komma åt den från applikationsservern:

$ psql -hlocalhost -p3307 -Uwordpress wordpressdb
Password for user wordpress:
psql (9.2.24, server 11.2)
WARNING: psql version 9.2, server version 11.0.
         Some psql features might not work.
Type "help" for help.
wordpressdb=>

Gå nu till install.php i webbläsaren, i vårt fall är IP-adressen för applikationsservern 192.168.100.153, så vi går till:

http://192.168.100.153/wordpress/wp-admin/install.php

Lägg till webbplatsens titel, användarnamn och lösenord för att komma åt administratörssektionen och din e-postadress.

Slutligen, gå till Plugins -> Installerade plugins och aktivera WPPG plugin.

Slutsats

Nu har vi WordPress som körs med PostgreSQL genom att använda en enda slutpunkt. Vi kan övervaka vår klusteraktivitet på ClusterControl genom att kontrollera olika mätvärden, instrumentpaneler eller många prestanda- och hanteringsfunktioner.

Det finns olika sätt att implementera WordPress med PostgreSQL. Det kan vara genom att använda ett annat plugin, eller genom att installera WordPress som vanligt och lägga till plugin senare, men i alla fall, som vi nämnde, stöds PostgreSQL inte officiellt av WordPress, så vi måste utföra en uttömmande testprocess om vi vill använd denna topologi i produktionen.


  1. Inbjudan till papper för PGDay.IT 2011 har förlängts

  2. Det totala antalet lås överstiger låsbordets storlek

  3. Hur man installerar och konfigurerar phpMyAdmin på Debian 8

  4. Fullständig återställning av ett MySQL- eller MariaDB Galera-kluster från säkerhetskopiering