Cloud for Charities: Migration Guide

Cloud for Charities: Migration Guide

Nem sokkal ezelőtt a Mail.Ru Cloud Solutions (MCS) és a Dobro Mail.Ru szolgáltatás elindította a projektet „Felhő jótékonysági szervezetek számára”, melynek köszönhetően a nonprofit szervezetek ingyenesen juthatnak hozzá az MCS felhőplatform erőforrásaihoz. Jótékonysági Alapítvány"A jóság aritmetikája» részt vett a projektben és sikeresen telepítette MCS-re épülő infrastruktúrájának egy részét.

Az érvényesítés átadása után egy nonprofit szervezet virtuális kapacitást kaphat az MCS-től, de a további konfigurálás bizonyos minősítéseket igényel. Ebben az anyagban konkrét utasításokat szeretnénk megosztani egy Ubuntu Linux-alapú szerver beállításához, amely az alapítvány fő webhelyét és számos aldomaint futtathat ingyenes SSL-tanúsítványok használatával. Sokak számára ez egyszerű útmutató lesz, de reméljük, hogy tapasztalataink hasznosak lesznek más nonprofit szervezetek számára is, és nem csak.

FYI: Mit kaphat az MCS-től? 4 CPU, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB objektumtárhely.

1. lépés: Indítsa el a virtuális szervert

Térjünk a lényegre, és hozzuk létre virtuális szerverünket (más néven „példány”) az MCS személyes fiókjában. Az alkalmazásboltban ki kell választania és telepítenie kell egy kész LAMP stacket, amely a legtöbb webhely futtatásához szükséges szerverszoftver (LAMP = Linux, Apache, MySQL, PHP) készlete.

Cloud for Charities: Migration Guide
Cloud for Charities: Migration Guide
Cloud for Charities: Migration Guide
Válassza ki a megfelelő szerverkonfigurációt, és hozzon létre egy új SSH-kulcsot. A „Telepítés” gombra kattintás után megkezdődik a szerver és a LAMP verem telepítése, ez eltart egy ideig. A rendszer azt is felajánlja, hogy letölt egy privát kulcsot a számítógépére a virtuális gép konzolon keresztüli kezeléséhez, és mentse el.

Az alkalmazás telepítése után azonnal állítsuk be a tűzfalat, ez a személyes fiókjában is megtörténik: lépjen a „Cloud computing -> Virtual machines” szakaszba, és válassza a „Tűzfal beállítása” lehetőséget:

Cloud for Charities: Migration Guide
Engedélyt kell adnia a 80-as és 9997-es porton keresztül érkező forgalomhoz. Ez szükséges a jövőben az SSL-tanúsítványok telepítéséhez és a phpMyAdminnal való együttműködéshez. Ennek eredményeként a szabálykészletnek így kell kinéznie:

Cloud for Charities: Migration Guide
Mostantól az SSH-protokoll segítségével parancssoron keresztül csatlakozhat a szerverhez. Ehhez írja be a következő parancsot a számítógépen lévő SSH-kulcsra és a szerver külső IP-címére mutatva (ezt a „Virtuális gépek” részben találja meg):

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

Amikor első alkalommal csatlakozik a szerverhez, ajánlatos az összes aktuális frissítést telepíteni rá, és újraindítani. Ehhez futtassa a következő parancsokat:

$ sudo apt-get update

A rendszer megkapja a frissítések listáját, telepítse őket ezzel a paranccsal, és kövesse az utasításokat:

$ sudo apt-get upgrade

A frissítések telepítése után indítsa újra a kiszolgálót:

$ sudo reboot

2. lépés: Virtuális gazdagépek beállítása

Sok nonprofit szervezetnek egyszerre több domaint vagy aldomaint kell fenntartania (például egy fő webhelyet és több céloldalt a promóciós kampányokhoz stb.). Mindez kényelmesen elhelyezhető egy szerveren több virtuális gazdagép létrehozásával.

Először létre kell hoznunk egy könyvtárstruktúrát a látogatók számára megjelenített webhelyekhez. Hozzunk létre néhány könyvtárat:

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

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

És adja meg az aktuális felhasználó tulajdonosát:

$ 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

Változó $USER tartalmazza azt a felhasználónevet, amellyel jelenleg bejelentkezett (alapértelmezés szerint ez a felhasználó ubuntu). Most az aktuális felhasználó birtokolja a public_html könyvtárakat, ahol a tartalmat tároljuk.

Kicsit módosítanunk kell a jogosultságokat is, hogy megbizonyosodjunk arról, hogy a megosztott webkönyvtárhoz és az abban található összes fájlhoz és mappához olvasási hozzáférés engedélyezett. Ez szükséges a webhely oldalainak megfelelő megjelenítéséhez:

$ sudo chmod -R 755 /var/www

A webszervernek most rendelkeznie kell a tartalom megjelenítéséhez szükséges engedélyekkel. Ezenkívül a felhasználó mostantól képes tartalmat létrehozni a szükséges könyvtárakban.

A /var/www/html könyvtárban már van egy index.php fájl, másoljuk át az új könyvtárainkba – egyelőre ez lesz a tartalom:

$ 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

Most meg kell győződnie arról, hogy a felhasználó hozzáférhet webhelyéhez. Ehhez először konfiguráljuk a virtuális gazdagép fájlokat, amelyek meghatározzák, hogy az Apache webszerver hogyan válaszoljon a különböző tartományok kérésére.

Alapértelmezés szerint az Apache rendelkezik egy 000-default.conf virtuális hosztfájllal, amelyet kiindulási pontként használhatunk. Ezt át fogjuk másolni, hogy virtuális gazdagép fájlokat hozzunk létre minden tartományunkhoz. Kezdjük egy domainnel, konfiguráljuk, átmásoljuk egy másik tartományba, majd ismét elvégezzük a szükséges módosításokat.

Az Ubuntu alapértelmezett konfigurációja megköveteli, hogy minden virtuális gazdagép fájl *.conf kiterjesztéssel rendelkezzen.

Kezdjük az első domain fájljának másolásával:

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

Nyisson meg egy új fájlt egy szerkesztőben root jogokkal:

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

Szerkessze az adatokat az alábbiak szerint, megadva a 80-as portot, amelyhez az Ön adatait ServerAdmin, ServerName, ServerAlias, valamint a webhely gyökérkönyvtárának elérési útját, mentse el a fájlt (Ctrl+X, majd 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 beállítja az elsődleges tartományt, amelynek meg kell egyeznie a virtuális gazdagép nevével. Ennek a domain nevednek kell lennie. Második, ServerAlias, más neveket határoz meg, amelyeket úgy kell értelmezni, mintha az elsődleges tartomány lenne. Ez kényelmes további domain nevek használatához, például a www.

Másoljuk át ezt a konfigurációt egy másik gépre, és szerkesszük ugyanígy:

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

Tetszőleges számú könyvtárat és virtuális gazdagépet hozhat létre webhelyei számára! Most, hogy létrehoztuk a virtuális gazdagép fájljainkat, engedélyeznünk kell őket. Használhatjuk az a2ensite segédprogramot, hogy minden webhelyünket így engedélyezzük:

$ sudo a2ensite a-dobra.ru.conf

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

Alapértelmezés szerint a 80-as port zárva van a LAMP-ban, és később szükségünk lesz rá az SSL-tanúsítvány telepítéséhez. Tehát azonnal szerkesszük a ports.conf fájlt, majd indítsuk újra az Apache-t:

$ sudo nano /etc/apache2/ports.conf

Adjon hozzá egy új sort, és mentse el a fájlt, hogy így nézzen ki:

Listen 80
Listen 443
Listen 9997

A beállítások elvégzése után újra kell indítania az Apache-t, hogy az összes módosítás érvénybe lépjen:

$ sudo systemctl reload apache2

3. lépés: Állítsa be a domain neveket

Ezután olyan DNS-rekordokat kell hozzáadnia, amelyek az új szerverre mutatnak. A tartományok kezelésére az Arithmetic of Good Foundation a dns-master.ru szolgáltatást használja, ezt egy példán mutatjuk be.

A fő tartomány A-rekordjának beállítását általában a következőképpen jelezzük (jel @):

Cloud for Charities: Migration Guide
Az aldomainekhez tartozó A rekord általában így van megadva:

Cloud for Charities: Migration Guide
Az IP-cím az általunk most létrehozott Linux-szerver címe. Megadhatja a TTL = 3600 értéket.

Egy idő után felkeresheti webhelyét, de egyelőre csak ezen keresztül http://. A következő lépésben támogatást adunk hozzá https://.

4. lépés: Állítsa be az ingyenes SSL-tanúsítványokat

Ingyenes Let's Encrypt SSL-tanúsítványokat kaphat fő webhelyéhez és minden aldomainjéhez. Beállíthatja az automatikus megújításukat is, ami nagyon kényelmes. SSL-tanúsítványok beszerzéséhez telepítse a Certbotot a szerverére:

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

Telepítse a Certbot csomagot Apache-hoz a használatával apt:

$ sudo apt install python-certbot-apache 

Most a Certbot használatra kész, futtassa a parancsot:

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

Ez a parancs a certbot, kulcsokat futtatja -d határozza meg azoknak a domaineknek a nevét, amelyekre a tanúsítványt ki kell adni.

Ha először indítja el a certbotot, akkor meg kell adnia e-mail címét, és el kell fogadnia a szolgáltatás használati feltételeit. A certbot ezután kapcsolatba lép a Let's Encrypt szerverrel, majd ellenőrzi, hogy valóban Ön irányítja-e azt a tartományt, amelyhez a tanúsítványt kérte.

Ha minden jól ment, a certbot megkérdezi, hogyan szeretné konfigurálni a HTTPS-konfigurációt:

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):

Javasoljuk, hogy válassza ki a 2. opciót, és nyomja meg az ENTER billentyűt. A konfiguráció frissül, és az Apache újraindul a változtatások alkalmazásához.

A tanúsítványok letöltése, telepítése és működése megtörtént. Próbálja újra betölteni webhelyét a https:// használatával, és megjelenik a biztonsági ikon a böngészőjében. Ha teszteli a szerverét SSL Labs Server Test, A osztályzatot kap.

A Let's Encrypt tanúsítványok csak 90 napig érvényesek, de a most telepített certbot csomag automatikusan megújítja a tanúsítványokat. A frissítési folyamat teszteléséhez elvégezhetjük a certbot száraz futtatását:

$ sudo certbot renew --dry-run 

Ha nem lát hibát a parancs futtatásakor, akkor minden működik!

5. lépés: Nyissa meg a MySQL-t és a phpMyAdmin-t

Sok webhely használ adatbázisokat. Az adatbázis-kezelő phpMyAdmin eszköz már telepítve van szerverünkön. A hozzáféréshez lépjen a böngészőjébe egy ilyen hivatkozás segítségével:

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

A root hozzáféréshez szükséges jelszót az MCS személyes fiókjában szerezheti be (https://mcs.mail.ru/app/services/marketplace/apps/). Ne felejtse el megváltoztatni a root jelszavát az első bejelentkezéskor!

6. lépés: Állítsa be a fájlfeltöltést SFTP-n keresztül

A fejlesztők számára kényelmes, ha SFTP-n keresztül tölthetnek fel fájlokat webhelyére. Ehhez létrehozunk egy új felhasználót, nevezzük webmesternek:

$ sudo adduser webmaster

A rendszer kérni fogja, hogy állítson be egy jelszót és adjon meg néhány egyéb adatot.

A címtár tulajdonosának megváltoztatása webhelyével:

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

Most változtassuk meg az SSH-konfigurációt úgy, hogy az új felhasználó csak az SFTP-hez férhessen hozzá, és ne az SSH-terminálhoz:

$ sudo nano /etc/ssh/sshd_config

Görgessen a konfigurációs fájl legvégére, és adja hozzá a következő blokkot:

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

Mentse el a fájlt és indítsa újra a szolgáltatást:

$ sudo systemctl restart sshd

Mostantól bármelyik SFTP-kliensen keresztül csatlakozhat a szerverhez, például a FileZillán keresztül.

Teljes

  1. Most már tudja, hogyan hozhat létre új könyvtárakat és konfigurálhat virtuális gazdagépeket a webhelyekhez ugyanazon a szerveren belül.
  2. Könnyedén létrehozhatja a szükséges SSL-tanúsítványokat – ez ingyenes, és automatikusan frissülnek.
  3. A MySQL adatbázissal kényelmesen dolgozhat az ismerős phpMyAdmin segítségével.
  4. Az új SFTP-fiókok létrehozása és a hozzáférési jogok beállítása nem igényel sok erőfeszítést. Az ilyen fiókok átvihetők külső webfejlesztőknek és webhelyadminisztrátoroknak.
  5. Ne felejtse el rendszeresen frissíteni a rendszert, és javasoljuk a biztonsági mentések készítését is - az MCS-ben egyetlen kattintással "pillanatfelvételeket" készíthet a teljes rendszerről, majd szükség esetén teljes képeket indíthat el.

Felhasznált források, amelyek hasznosak lehetnek:

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

By the way, itt A VC-n elolvashatja, hogyan telepített alapítványunk egy platformot az árvák online oktatására az MCS felhő alapján.

Forrás: will.com

Hozzászólás