Cloud for Charities: Migration Guide

Cloud for Charities: Migration Guide

För inte så länge sedan lanserade Mail.Ru Cloud Solutions (MCS) och Dobro Mail.Ru-tjänsten projektet "Moln för välgörenhetsorganisationer”, tack vare vilka ideella organisationer kan få resurserna från MCS molnplattform gratis. Välgörenhetsstiftelse "Godhetens aritmetik» deltog i projektet och framgångsrikt distribuerade en del av sin infrastruktur baserad på MCS.

Efter godkänd validering kan en NPO ta emot virtuell kapacitet från MCS, men ytterligare konfiguration kräver vissa kvalifikationer. I det här materialet vill vi dela med oss ​​av specifika instruktioner för att ställa in en Ubuntu Linux-baserad server för att köra huvudwebbplatsen och ett antal underdomäner med gratis SSL-certifikat. För många blir detta en enkel guide, men vi hoppas att vår erfarenhet kommer att vara användbar för andra ideella organisationer, och inte bara.

FYI: Vad kan du få från MCS? 4 processorer, 32 GB RAM, 1 TB hårddisk, Ubuntu Linux OS, 500 GB objektlagring.

Steg 1: starta den virtuella servern

Låt oss gå direkt till saken och skapa vår virtuella server (aka "instans") i ditt personliga MCS-konto. I appbutiken måste du välja och installera en färdig LAMP-stack, som är en uppsättning serverprogramvara (LAMP = Linux, Apache, MySQL, PHP) som krävs för att köra de flesta webbplatser.

Cloud for Charities: Migration Guide
Cloud for Charities: Migration Guide
Cloud for Charities: Migration Guide
Välj lämplig serverkonfiguration och skapa en ny SSH-nyckel. Efter att ha klickat på "Installera"-knappen börjar installationen av servern och LAMP-stacken, detta kommer att ta lite tid. Systemet kommer också att erbjuda att ladda ner en privat nyckel till din dator för att hantera den virtuella maskinen via konsolen, spara den.

Efter att ha installerat applikationen, låt oss omedelbart ställa in brandväggen, detta görs också på ditt personliga konto: gå till avsnittet "Cloud computing -> Virtuella maskiner" och välj "Ställa in brandväggen":

Cloud for Charities: Migration Guide
Du måste lägga till behörighet för inkommande trafik genom port 80 och 9997. Detta är nödvändigt i framtiden för att installera SSL-certifikat och för att arbeta med phpMyAdmin. Som ett resultat bör uppsättningen regler se ut så här:

Cloud for Charities: Migration Guide
Nu kan du ansluta till din server via kommandoraden med hjälp av SSH-protokollet. För att göra detta, skriv följande kommando och peka på SSH-nyckeln på din dator och den externa IP-adressen till din server (du hittar den i avsnittet "Virtuella maskiner"):

$ ssh -i /путь/к/ключу/key.pem ubuntu@<ip_сервера>

När du ansluter till servern för första gången rekommenderas det att installera alla aktuella uppdateringar på den och starta om den. För att göra detta, kör följande kommandon:

$ sudo apt-get update

Systemet kommer att få en lista med uppdateringar, installera dem med det här kommandot och följ instruktionerna:

$ sudo apt-get upgrade

När du har installerat uppdateringarna startar du om servern:

$ sudo reboot

Steg 2: Konfigurera virtuella värdar

Många ideella organisationer behöver underhålla flera domäner eller underdomäner samtidigt (till exempel en huvudwebbplats och flera målsidor för reklamkampanjer, etc.). Allt detta kan enkelt placeras på en server genom att skapa flera virtuella värdar.

Först måste vi skapa en katalogstruktur för de webbplatser som kommer att visas för besökare. Låt oss skapa några kataloger:

$ sudo mkdir -p /var/www/a-dobra.ru/public_html

$ sudo mkdir -p /var/www/promo.a-dobra.ru/public_html

Och ange ägaren till den nuvarande användaren:

$ sudo chown -R $USER:$USER /var/www/a-dobra.ru/public_html

$ sudo chown -R $USER:$USER /var/www/promo.a-dobra.ru/public_html

Variabel $USER innehåller användarnamnet som du för närvarande är inloggad under (som standard är detta användaren ubuntu). Nu äger den nuvarande användaren public_html-katalogerna där vi kommer att lagra innehållet.

Vi behöver också redigera behörigheterna lite för att säkerställa att läsåtkomst tillåts till den delade webbkatalogen och alla filer och mappar den innehåller. Detta är nödvändigt för att webbplatssidorna ska visas korrekt:

$ sudo chmod -R 755 /var/www

Din webbserver bör nu ha de behörigheter den behöver för att visa innehållet. Dessutom har din användare nu möjlighet att skapa innehåll i de kataloger som krävs.

Det finns redan en index.php-fil i /var/www/html-katalogen, låt oss kopiera den till våra nya kataloger - detta kommer att vara vårt innehåll för tillfället:

$ cp /var/www/html/index.php /var/www/a-dobra.ru/public_html/index.php

$ cp /var/www/html/index.php /var/www/promo.a-dobra.ru/public_html/index.php

Nu måste du se till att användaren kan komma åt din webbplats. För att göra detta kommer vi först att konfigurera de virtuella värdfilerna, som avgör hur Apache-webbservern kommer att svara på förfrågningar till olika domäner.

Som standard har Apache en virtuell värdfil 000-default.conf som vi kan använda som utgångspunkt. Vi kommer att kopiera detta för att skapa virtuella värdfiler för var och en av våra domäner. Vi börjar med en domän, konfigurerar den, kopierar den till en annan domän och gör sedan de nödvändiga ändringarna igen.

Ubuntus standardkonfiguration kräver att varje virtuell värdfil har ett *.conf-tillägg.

Låt oss börja med att kopiera filen för den första domänen:

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/a-dobra.ru.conf

Öppna en ny fil i en editor med root-rättigheter:

$ sudo nano /etc/apache2/sites-available/a-dobra.ru.conf

Redigera data enligt följande, ange port 80, dina data för ServerAdmin, ServerName, ServerAlias, samt sökvägen till rotkatalogen på din webbplats, spara filen (Ctrl+X, sedan Y):

<VirtualHost *:80>
 
    ServerAdmin [email protected]
    ServerName a-dobra.ru
    ServerAlias www.a-dobra.ru
 
    DocumentRoot /var/www/a-dobra.ru/public_html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
 
    <Directory /var/www/a-dobra.ru/public_html>
        Options -Indexes +FollowSymLinks +MultiViews
        AllowOverride All
        Require all granted
    </Directory>
 
    <FilesMatch .php$>
        SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
    </FilesMatch>
 
</VirtualHost>

ServerName anger den primära domänen, som måste matcha det virtuella värdnamnet. Detta måste vara ditt domännamn. Andra, ServerAlias, definierar andra namn som ska tolkas som om det vore den primära domänen. Detta är praktiskt för att använda ytterligare domännamn, till exempel genom att använda www.

Låt oss kopiera den här konfigurationen för en annan värd och även redigera den på samma sätt:

$ sudo cp /etc/apache2/sites-available/a-dobra.ru.conf /etc/apache2/sites-available/promo.a-dobra.ru.conf

Du kan skapa så många kataloger och virtuella värdar för dina webbplatser som du vill! Nu när vi har skapat våra virtuella värdfiler måste vi aktivera dem. Vi kan använda verktyget a2ensite för att aktivera var och en av våra webbplatser så här:

$ sudo a2ensite a-dobra.ru.conf

$ sudo a2ensite promo.a-dobra.ru.conf 

Som standard är port 80 stängd i LAMP, och vi kommer att behöva den senare för att installera ett SSL-certifikat. Så låt oss omedelbart redigera filen ports.conf och sedan starta om Apache:

$ sudo nano /etc/apache2/ports.conf

Lägg till en ny rad och spara filen så att den ser ut så här:

Listen 80
Listen 443
Listen 9997

När du har slutfört inställningarna måste du starta om Apache för att alla ändringar ska träda i kraft:

$ sudo systemctl reload apache2

Steg 3: Konfigurera domännamn

Därefter måste du lägga till DNS-poster som pekar på din nya server. För att hantera domäner använder vår Arithmetic of Good Foundation tjänsten dns-master.ru, vi visar det med ett exempel.

Att sätta upp en A-post för huvuddomänen indikeras vanligtvis enligt följande (tecken @):

Cloud for Charities: Migration Guide
A-posten för underdomäner anges vanligtvis så här:

Cloud for Charities: Migration Guide
IP-adressen är adressen till Linux-servern vi just skapade. Du kan ange TTL = 3600.

Efter en tid kommer det att vara möjligt att besöka din webbplats, men för närvarande endast genom http://. I nästa steg kommer vi att lägga till support https://.

Steg 4: Konfigurera gratis SSL-certifikat

Du kan få gratis Let's Encrypt SSL-certifikat för din huvudsajt och alla underdomäner. Du kan också konfigurera deras automatiska förnyelse, vilket är mycket bekvämt. För att få SSL-certifikat, installera Certbot på din server:

$ sudo add-apt-repository ppa:certbot/certbot

Installera Certbot-paketet för Apache med apt:

$ sudo apt install python-certbot-apache 

Nu är Certbot redo att användas, kör kommandot:

$ sudo certbot --apache -d a-dobra.ru -d www.a-dobra.ru -d promo.a-dobra.ru

Detta kommando kör certbot, keys -d definiera namnen på de domäner för vilka certifikatet ska utfärdas.

Om det är första gången du startar certbot kommer du att bli ombedd att ange din e-postadress och godkänna användarvillkoren för tjänsten. certbot kommer då att kontakta Let's Encrypt-servern och sedan verifiera att du faktiskt kontrollerar domänen som du begärde certifikatet för.

Om allt gick bra kommer certbot att fråga hur du vill konfigurera HTTPS-konfigurationen:

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):

Vi rekommenderar att du väljer alternativ 2 och trycker på ENTER. Konfigurationen kommer att uppdateras och Apache kommer att startas om för att tillämpa ändringarna.

Dina certifikat är nu nedladdade, installerade och fungerar. Testa att ladda om din webbplats med https:// så ser du säkerhetsikonen i din webbläsare. Om du testar din server SSL Labs Server Test, får han betyget A.

Let's Encrypt-certifikat är bara giltiga i 90 dagar, men certbot-paketet vi just installerade kommer att förnya certifikat automatiskt. För att testa uppdateringsprocessen kan vi göra en torrkörning av certbot:

$ sudo certbot renew --dry-run 

Om du inte ser några fel som ett resultat av att köra det här kommandot, så fungerar allt!

Steg 5: Öppna MySQL och phpMyAdmin

Många webbplatser använder databaser. phpMyAdmin-verktyget för databashantering är redan installerat på vår server. För att komma åt den, gå till din webbläsare med en länk som:

https://<ip-адрес сервера>:9997

Lösenordet för root-åtkomst kan erhållas i ditt personliga MCS-konto (https://mcs.mail.ru/app/services/marketplace/apps/). Glöm inte att ändra ditt root-lösenord första gången du loggar in!

Steg 6: Konfigurera filuppladdning via SFTP

Utvecklare kommer att finna det bekvämt att ladda upp filer till din webbplats via SFTP. För att göra detta kommer vi att skapa en ny användare, kalla honom webmaster:

$ sudo adduser webmaster

Systemet kommer att be dig ställa in ett lösenord och ange några andra uppgifter.

Ändra ägare av katalogen med din webbplats:

$ sudo chown -R webmaster:webmaster /var/www/a-dobra.ru/public_html

Låt oss nu ändra SSH-konfigurationen så att den nya användaren bara har tillgång till SFTP och inte SSH-terminalen:

$ sudo nano /etc/ssh/sshd_config

Bläddra till slutet av konfigurationsfilen och lägg till följande block:

Match User webmaster
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/www/a-dobra.ru
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no

Spara filen och starta om tjänsten:

$ sudo systemctl restart sshd

Nu kan du ansluta till servern via vilken SFTP-klient som helst, till exempel genom FileZilla.

Totalt

  1. Nu vet du hur du skapar nya kataloger och konfigurerar virtuella värdar för dina webbplatser inom samma server.
  2. Du kan enkelt skapa de nödvändiga SSL-certifikaten - det är gratis, och de kommer att uppdateras automatiskt.
  3. Du kan enkelt arbeta med MySQL-databasen genom den välbekanta phpMyAdmin.
  4. Att skapa nya SFTP-konton och ställa in åtkomsträttigheter kräver inte mycket ansträngning. Sådana konton kan överföras till tredjeparts webbutvecklare och webbplatsadministratörer.
  5. Glöm inte att regelbundet uppdatera systemet, och vi rekommenderar också att du gör säkerhetskopior - i MCS kan du ta "snapshots" av hela systemet med ett klick och sedan, om nödvändigt, starta hela bilder.

Använda resurser som kan vara användbara:

https://www.digitalocean.com/community/tutorials/apache-ubuntu-14-04-lts-ru
https://www.digitalocean.com/community/tutorials/apache-let-s-encrypt-ubuntu-18-04-ru
https://www.digitalocean.com/community/tutorials/how-to-enable-sftp-without-shell-access-on-ubuntu-18-04

Förresten, här Du kan läsa på VC hur vår stiftelse implementerade en plattform för onlineutbildning för föräldralösa barn baserad på MCS-molnet.

Källa: will.com

Lägg en kommentar