Cloud for Charities: migratsioonijuhend

Cloud for Charities: migratsioonijuhend

Mitte kaua aega tagasi käivitasid Mail.Ru Cloud Solutions (MCS) ja teenus Dobro Mail.Ru projekti "Pilv heategevuseks”, tänu millele saavad mittetulundusühingud MCS pilveplatvormi ressursse tasuta hankida. Heategevusfond"Headuse aritmeetika» osales projektis ja võttis osa oma MCS-il põhinevast infrastruktuurist edukalt kasutusele.

Pärast valideerimise läbimist võib mittetulundusorganisatsioon saada MCS-ilt virtuaalset võimsust, kuid edasine konfigureerimine nõuab teatud kvalifikatsiooni. Selles materjalis tahame jagada konkreetseid juhiseid Ubuntu Linuxi-põhise serveri seadistamiseks, et käitada põhiveebisaiti ja mitmeid alamdomeene, kasutades tasuta SSL-sertifikaate. Paljude jaoks on see lihtne juhend, kuid loodame, et meie kogemusest on kasu ka teistele mittetulundusühingutele ja mitte ainult.

FYI: Mida saate MCS-ist? 4 protsessorit, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB objektide salvestusruum.

1. samm: käivitage virtuaalserver

Läheme otse asja juurde ja loome oma MCS-i isiklikul kontol oma virtuaalserveri (ehk "näitaja"). Rakenduste poes tuleb valida ja installida valmis LAMP-pinn, mis on enamiku veebisaitide käitamiseks vajalik serveritarkvara komplekt (LAMP = Linux, Apache, MySQL, PHP).

Cloud for Charities: migratsioonijuhend
Cloud for Charities: migratsioonijuhend
Cloud for Charities: migratsioonijuhend
Valige sobiv serveri konfiguratsioon ja looge uus SSH-võti. Pärast nupu "Install" klõpsamist algab serveri ja LAMP-i pinu installimine, see võtab veidi aega. Samuti pakub süsteem virtuaalmasina haldamiseks konsooli kaudu arvutisse privaatvõtme allalaadimist, salvestage see.

Pärast rakenduse installimist seadistame kohe tulemüüri, seda tehakse ka teie isiklikul kontol: minge jaotisse "Pilvandmetöötlus -> Virtuaalsed masinad" ja valige "Tulemüüri seadistamine":

Cloud for Charities: migratsioonijuhend
Peate lisama loa sissetuleva liikluse jaoks pordi 80 ja 9997 kaudu. See on tulevikus vajalik SSL-sertifikaatide installimiseks ja phpMyAdminiga töötamiseks. Selle tulemusena peaks reeglite kogum välja nägema järgmine:

Cloud for Charities: migratsioonijuhend
Nüüd saate oma serveriga ühenduse luua käsurea kaudu, kasutades SSH-protokolli. Selleks tippige järgmine käsk, osutades arvuti SSH-võtmele ja serveri välisele IP-aadressile (leiate selle jaotisest "Virtuaalsed masinad"):

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

Esmakordsel serveriga ühenduse loomisel on soovitatav installida kõik praegused värskendused ja taaskäivitada. Selleks käivitage järgmised käsud:

$ sudo apt-get update

Süsteem saab värskenduste loendi, installige need selle käsu abil ja järgige juhiseid:

$ sudo apt-get upgrade

Pärast värskenduste installimist taaskäivitage server:

$ sudo reboot

2. samm: seadistage virtuaalsed hostid

Paljud mittetulundusühingud peavad haldama korraga mitut domeeni või alamdomeeni (näiteks peamist veebisaiti ja mitut sihtlehte reklaamikampaaniate jaoks jne). Seda kõike saab mugavalt paigutada ühte serverisse, luues mitu virtuaalset hosti.

Esmalt peame looma kataloogistruktuuri külastajatele kuvatavate saitide jaoks. Loome mõned kataloogid:

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

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

Ja määrake praeguse kasutaja omanik:

$ 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

Muutuv $USER sisaldab kasutajanime, mille all olete praegu sisse logitud (vaikimisi on see kasutaja ubuntu). Nüüd omab praegune kasutaja public_html katalooge, kuhu sisu talletame.

Peame ka õigusi veidi muutma, et tagada lugemisjuurdepääs jagatud veebikataloogile ja kõigile selles sisalduvatele failidele ja kaustadele. See on vajalik saidi lehtede korrektseks kuvamiseks:

$ sudo chmod -R 755 /var/www

Teie veebiserveril peaksid nüüd olema sisu kuvamiseks vajalikud õigused. Lisaks on teie kasutajal nüüd võimalus luua sisu vajalikes kataloogides.

Kataloogis /var/www/html on juba fail index.php, kopeerime selle oma uutesse kataloogidesse – see on praegu meie sisu:

$ 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

Nüüd peate veenduma, et kasutaja pääseb teie saidile juurde. Selleks konfigureerime esmalt virtuaalserveri failid, mis määravad, kuidas Apache veebiserver vastab erinevatele domeenidele suunatud päringutele.

Vaikimisi on Apachel virtuaalne hostfail 000-default.conf, mida saame kasutada lähtepunktina. Kopeerime selle, et luua iga domeeni jaoks virtuaalserveri failid. Alustame ühest domeenist, konfigureerime selle, kopeerime teise domeeni ja teeme siis uuesti vajalikud muudatused.

Ubuntu vaikekonfiguratsioon nõuab, et igal virtuaalse hosti failil oleks *.conf laiend.

Alustame esimese domeeni faili kopeerimisega:

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

Avage juurõigustega redaktoris uus fail:

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

Redigeerige andmeid järgmiselt, määrates pordi 80, teie andmed ServerAdmin, ServerName, ServerAlias, samuti oma saidi juurkataloogi tee, salvestage fail (Ctrl+X, seejärel 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 määrab esmase domeeni, mis peab ühtima virtuaalse hosti nimega. See peab olema teie domeeninimi. Teiseks ServerAlias, määratleb muud nimed, mida tuleks tõlgendada nii, nagu oleks tegemist esmase domeeniga. See on mugav täiendavate domeeninimede kasutamiseks, näiteks kasutades www.

Kopeerime selle konfiguratsiooni teise hosti jaoks ja redigeerime seda samal viisil:

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

Saate luua oma veebisaitide jaoks nii palju katalooge ja virtuaalseid hoste, kui soovite! Nüüd, kui oleme oma virtuaalse hosti failid loonud, peame need lubama. Saame kasutada utiliiti a2ensite, et võimaldada iga oma saiti järgmiselt:

$ sudo a2ensite a-dobra.ru.conf

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

Vaikimisi on port 80 LAMP-is suletud ja vajame seda hiljem SSL-sertifikaadi installimiseks. Redigeerime kohe faili ports.conf ja seejärel taaskäivitame Apache:

$ sudo nano /etc/apache2/ports.conf

Lisage uus rida ja salvestage fail nii, et see näeks välja järgmine:

Listen 80
Listen 443
Listen 9997

Pärast seadete lõpetamist peate kõigi muudatuste jõustumiseks taaskäivitama Apache:

$ sudo systemctl reload apache2

3. samm: seadistage domeeninimed

Järgmiseks peate lisama DNS-kirjed, mis osutavad teie uuele serverile. Domeenide haldamiseks kasutab meie hea sihtasutuse aritmeetika teenust dns-master.ru, näitame seda näitega.

Põhidomeeni A-kirje seadistamine on tavaliselt näidatud järgmiselt (märk @):

Cloud for Charities: migratsioonijuhend
Alamdomeenide A-kirje määratakse tavaliselt järgmiselt:

Cloud for Charities: migratsioonijuhend
IP-aadress on äsja loodud Linuxi serveri aadress. Saate määrata TTL = 3600.

Mõne aja pärast on teie saiti võimalik külastada, kuid praegu ainult läbi http://. Järgmises etapis lisame tuge https://.

4. samm: seadistage tasuta SSL-sertifikaadid

Saate hankida tasuta Let's Encrypt SSL-sertifikaadid oma põhisaidile ja kõikidele alamdomeenidele. Samuti saate seadistada nende automaatse uuendamise, mis on väga mugav. SSL-sertifikaatide hankimiseks installige oma serverisse Certbot:

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

Installige Certboti pakett Apache'i jaoks, kasutades apt:

$ sudo apt install python-certbot-apache 

Nüüd on Certbot kasutamiseks valmis, käivitage käsk:

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

See käsk käivitab certbot, võtmed -d määratleda nende domeenide nimed, mille jaoks sertifikaat väljastada.

Kui käivitate certbot esimest korda, palutakse teil sisestada oma e-posti aadress ja nõustuda teenuse kasutustingimustega. certbot võtab seejärel ühendust Let's Encrypt serveriga ja seejärel kontrollib, kas te tegelikult kontrollite domeeni, mille jaoks sertifikaati taotlesite.

Kui kõik läks hästi, küsib certbot, kuidas soovite HTTPS-i konfiguratsiooni konfigureerida:

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

Soovitame valida 2. valiku ja vajutada ENTER. Konfiguratsiooni värskendatakse ja muudatuste rakendamiseks taaskäivitatakse Apache.

Teie sertifikaadid on nüüd alla laaditud, installitud ja töötavad. Proovige oma sait uuesti laadida aadressil https:// ja näete oma brauseris turvaikooni. Kui testite oma serverit SSL Labsi serveri test, saab ta hinde A.

Let's Encrypt sertifikaadid kehtivad ainult 90 päeva, kuid äsja installitud certbot-pakett uuendab sertifikaate automaatselt. Värskendusprotsessi testimiseks saame teha certboti kuivkäivituse:

$ sudo certbot renew --dry-run 

Kui te ei näe selle käsu käivitamisel ühtegi viga, siis kõik töötab!

5. samm: juurdepääs MySQL-ile ja phpMyAdminile

Paljud veebisaidid kasutavad andmebaase. Andmebaasi haldamise tööriist phpMyAdmin on meie serverisse juba installitud. Sellele juurdepääsuks avage oma brauser, kasutades sellist linki nagu:

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

Juurjuurdepääsu parooli saate oma MCS-i isiklikult kontolt (https://mcs.mail.ru/app/services/marketplace/apps/). Ärge unustage esmakordsel sisselogimisel oma root parooli muuta!

6. samm: seadistage failide üleslaadimine SFTP kaudu

Arendajatel on mugav oma veebisaidi jaoks faile SFTP kaudu üles laadida. Selleks loome uue kasutaja, kutsume teda veebihalduriks:

$ sudo adduser webmaster

Süsteem palub teil määrata parool ja sisestada mõned muud andmed.

Kataloogi omaniku muutmine oma veebisaidiga:

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

Nüüd muudame SSH konfiguratsiooni nii, et uuel kasutajal oleks juurdepääs ainult SFTP-le, mitte SSH-terminalile:

$ sudo nano /etc/ssh/sshd_config

Kerige konfiguratsioonifaili lõppu ja lisage järgmine plokk:

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

Salvestage fail ja taaskäivitage teenus:

$ sudo systemctl restart sshd

Nüüd saate serveriga ühenduse luua mis tahes SFTP-kliendi kaudu, näiteks FileZilla kaudu.

Summaarne

  1. Nüüd teate, kuidas luua uusi katalooge ja konfigureerida oma veebisaitide jaoks samas serveris virtuaalseid hoste.
  2. Vajalikud SSL-sertifikaadid saate hõlpsalt luua – see on tasuta ja neid uuendatakse automaatselt.
  3. MySQL andmebaasiga saab mugavalt töötada tuttava phpMyAdmini kaudu.
  4. Uute SFTP-kontode loomine ja juurdepääsuõiguste seadistamine ei nõua palju pingutusi. Selliseid kontosid saab üle kanda kolmanda osapoole veebiarendajatele ja saidiadministraatoritele.
  5. Ärge unustage süsteemi perioodiliselt värskendada ja soovitame teha ka varukoopiaid - MCS-is saate ühe klõpsuga kogu süsteemist "hetktõmmised" teha ja seejärel vajadusel terveid pilte käivitada.

Kasutatud ressursid, mis võivad olla kasulikud:

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

Muide, siin VC-st saate lugeda, kuidas meie sihtasutus juurutas MCS-pilvel põhineva orbude veebipõhise hariduse platvormi.

Allikas: www.habr.com

Lisa kommentaar