Cloud għall-Karitajiet: Gwida dwar il-Migrazzjoni

Cloud għall-Karitajiet: Gwida dwar il-Migrazzjoni

Ftit ilu, Mail.Ru Cloud Solutions (MCS) u s-servizz Dobro Mail.Ru nedew il-proġett "Cloud għall-karitajiet”, li bis-saħħa tiegħu organizzazzjonijiet mingħajr skop ta’ qligħ jistgħu jiksbu r-riżorsi tal-pjattaforma MCS cloud b’xejn. Fondazzjoni tal-Karità "Aritmetika tat-tjubija» ħa sehem fil-proġett u skjerat b’suċċess parti mill-infrastruttura tagħha bbażata fuq l-MCS.

Wara li jgħaddi l-validazzjoni, NPO jista 'jirċievi kapaċità virtwali minn MCS, iżda konfigurazzjoni ulterjuri teħtieġ ċerti kwalifiki. F'dan il-materjal, irridu naqsmu struzzjonijiet speċifiċi għat-twaqqif ta 'server ibbażat fuq Ubuntu Linux biex imexxi l-websajt prinċipali tal-fondazzjoni u numru ta' sottodominji li jużaw ċertifikati SSL b'xejn. Għal ħafna, din se tkun gwida sempliċi, iżda nittamaw li l-esperjenza tagħna tkun utli għal organizzazzjonijiet oħra li ma jagħmlux qligħ, u mhux biss.

FYI: X'tista' tikseb mill-MCS? 4 CPUs, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, ħażna ta 'oġġetti 500 GB.

Pass 1: tniedi s-server virtwali

Ejja mmorru dritt għall-punt u noħolqu s-server virtwali tagħna (magħruf ukoll bħala "istanza") fil-kont personali tal-MCS tiegħek. Fil-maħżen tal-app, għandek bżonn tagħżel u tinstalla munzell LAMP lest, li huwa sett ta 'softwer tas-server (LAMP = Linux, Apache, MySQL, PHP) meħtieġ biex imexxi l-biċċa l-kbira tal-websajts.

Cloud għall-Karitajiet: Gwida dwar il-Migrazzjoni
Cloud għall-Karitajiet: Gwida dwar il-Migrazzjoni
Cloud għall-Karitajiet: Gwida dwar il-Migrazzjoni
Agħżel il-konfigurazzjoni xierqa tas-server u oħloq ċavetta SSH ġdida. Wara li tikklikkja fuq il-buttuna "Installa", l-installazzjoni tas-server u l-munzell LAMP se tibda, dan jieħu xi żmien. Is-sistema se toffri wkoll li tniżżel ċavetta privata fuq il-kompjuter tiegħek biex timmaniġġja l-magna virtwali permezz tal-console, issalvaha.

Wara li tinstalla l-applikazzjoni, ejja immedjatament inwaqqfu l-firewall, dan isir ukoll fil-kont personali tiegħek: mur fis-sezzjoni "Cloud computing -> Magni virtwali" u agħżel "Issettjar tal-firewall":

Cloud għall-Karitajiet: Gwida dwar il-Migrazzjoni
Trid iżżid il-permess għat-traffiku li jkun dieħel mill-port 80 u 9997. Dan huwa meħtieġ fil-futur biex jiġu installati ċertifikati SSL u biex taħdem ma' phpMyAdmin. Bħala riżultat, is-sett ta 'regoli għandu jidher bħal dan:

Cloud għall-Karitajiet: Gwida dwar il-Migrazzjoni
Issa tista 'tikkonnettja mas-server tiegħek permezz tal-linja tal-kmand billi tuża l-protokoll SSH. Biex tagħmel dan, ikteb il-kmand li ġej, billi tipponta lejn iċ-ċavetta SSH fuq il-kompjuter tiegħek u l-indirizz IP estern tas-server tiegħek (tista 'ssibha fit-taqsima "Magni virtwali"):

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

Meta tikkonnettja mas-server għall-ewwel darba, huwa rakkomandat li tinstalla l-aġġornamenti kurrenti kollha fuqu u terġa 'tibda. Biex tagħmel dan, mexxi l-kmandi li ġejjin:

$ sudo apt-get update

Is-sistema tirċievi lista ta 'aġġornamenti, tinstallahom billi tuża dan il-kmand u segwi l-istruzzjonijiet:

$ sudo apt-get upgrade

Wara li tinstalla l-aġġornamenti, ibda mill-ġdid is-server:

$ sudo reboot

Pass 2: Twaqqaf hosts virtwali

Ħafna organizzazzjonijiet mingħajr skop ta’ qligħ jeħtieġ li jżommu diversi oqsma jew sottodominji fl-istess ħin (pereżempju, websajt prinċipali u diversi paġni ta’ destinazzjoni għal kampanji promozzjonali, eċċ.). Dan kollu jista 'jitqiegħed b'mod konvenjenti fuq server wieħed billi jinħolqu diversi hosts virtwali.

L-ewwel għandna bżonn noħolqu struttura tad-direttorju għas-siti li se jintwerew lill-viżitaturi. Ejja noħolqu xi direttorji:

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

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

U speċifika s-sid tal-utent attwali:

$ 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

Varjabbli $USER fih l-isem tal-utent li inti bħalissa illoggjat bih (b'mod awtomatiku dan huwa l-utent ubuntu). Issa l-utent attwali għandu d-direttorji public_html fejn se naħżnu l-kontenut.

Għandna bżonn ukoll neditjaw il-permessi daqsxejn biex niżguraw li l-aċċess għall-qari huwa permess għad-direttorju tal-web kondiviż u l-fajls u l-folders kollha li jkun fih. Dan huwa meħtieġ biex il-paġni tas-sit jintwerew b'mod korrett:

$ sudo chmod -R 755 /var/www

Is-server tal-web tiegħek issa għandu jkollu l-permessi li jeħtieġ biex juri l-kontenut. Barra minn hekk, l-utent tiegħek issa għandu l-abbiltà li joħloq kontenut fid-direttorji meħtieġa.

Diġà hemm fajl index.php fid-direttorju /var/www/html, ejja nikkopjah fid-direttorji l-ġodda tagħna - dan se jkun il-kontenut tagħna għalissa:

$ 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

Issa trid tiżgura li l-utent jista’ jaċċessa s-sit tiegħek. Biex tagħmel dan, l-ewwel se nikkonfiguraw il-fajls ospitanti virtwali, li jiddeterminaw kif is-server tal-web Apache se jirrispondi għal talbiet għal oqsma differenti.

B'mod awtomatiku, Apache għandu fajl ospitanti virtwali 000-default.conf li nistgħu nużaw bħala punt tat-tluq. Aħna ser nikkopjaw dan biex noħolqu fajls ospitanti virtwali għal kull qasam tagħna. Nibdew b'dominju wieħed, nikkonfigurawh, nikkopjawh għal dominju ieħor, u mbagħad nerġgħu nagħmlu l-editji meħtieġa.

Il-konfigurazzjoni default ta' Ubuntu teħtieġ li kull fajl ospitanti virtwali jkollu estensjoni *.conf.

Nibdew billi nikkopja l-fajl għall-ewwel dominju:

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

Iftaħ fajl ġdid f'editur bi drittijiet tal-għeruq:

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

Editja d-dejta kif ġej, billi tispeċifika l-port 80, id-dejta tiegħek għaliha ServerAdmin, ServerName, ServerAlias, kif ukoll il-mogħdija għad-direttorju tal-għeruq tas-sit tiegħek, issalva l-fajl (Ctrl+X, imbagħad 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 jistabbilixxi d-dominju primarju, li għandu jaqbel mal-isem tal-host virtwali. Dan għandu jkun l-isem tad-dominju tiegħek. It-tieni, ServerAlias, jiddefinixxi ismijiet oħra li għandhom jiġu interpretati bħallikieku kien id-dominju primarju. Dan huwa konvenjenti għall-użu ta' ismijiet ta' dominju addizzjonali, pereżempju bl-użu ta' www.

Ejja nikkopja din il-konfigurazzjoni għal host ieħor u teditjaha wkoll bl-istess mod:

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

Tista 'toħloq direttorji u hosts virtwali għall-websajts tiegħek kemm tixtieq! Issa li ħloqna l-fajls ospitanti virtwali tagħna, irridu nippermettuhom. Nistgħu nużaw l-utilità a2ensite biex inħallu kull wieħed mis-siti tagħna bħal dan:

$ sudo a2ensite a-dobra.ru.conf

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

B'mod awtomatiku, il-port 80 huwa magħluq f'LAMP, u jkollna bżonnu aktar tard biex ninstallaw ċertifikat SSL. Mela ejja neditjaw immedjatament il-fajl ports.conf u mbagħad terġa 'tibda Apache:

$ sudo nano /etc/apache2/ports.conf

Żid linja ġdida u ssejvja l-fajl sabiex jidher bħal dan:

Listen 80
Listen 443
Listen 9997

Wara li tlesti s-settings, għandek bżonn terġa 'tibda Apache biex il-bidliet kollha jidħlu fis-seħħ:

$ sudo systemctl reload apache2

Pass 3: Issettja l-ismijiet tad-dominju

Sussegwentement, għandek bżonn iżżid rekords DNS li se jindikaw is-server il-ġdid tiegħek. Biex timmaniġġja oqsma, l-Arithmetic of Good Foundation tagħna tuża s-servizz dns-master.ru, aħna se nuruh b'eżempju.

It-twaqqif ta’ rekord A għad-dominju prinċipali normalment ikun indikat kif ġej (sinjal @):

Cloud għall-Karitajiet: Gwida dwar il-Migrazzjoni
Ir-rekord A għas-sottodominji huwa ġeneralment speċifikat bħal dan:

Cloud għall-Karitajiet: Gwida dwar il-Migrazzjoni
L-indirizz IP huwa l-indirizz tas-server Linux li għadna kemm ħloqna. Tista 'tispeċifika TTL = 3600.

Wara xi żmien, ikun possibbli li żżur is-sit tiegħek, iżda għalissa biss permezz http://. Fil-pass li jmiss se nżidu l-appoġġ https://.

Pass 4: Twaqqaf ċertifikati SSL b'xejn

Tista' tikseb ċertifikati SSL ta' Let's Encrypt b'xejn għas-sit prinċipali tiegħek u s-sottodominji kollha. Tista 'wkoll tikkonfigura t-tiġdid awtomatiku tagħhom, li huwa konvenjenti ħafna. Biex tikseb ċertifikati SSL, installa Certbot fuq is-server tiegħek:

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

Installa l-pakkett Certbot għall-użu ta 'Apache apt:

$ sudo apt install python-certbot-apache 

Issa Certbot huwa lest biex jintuża, mexxi l-kmand:

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

Dan il-kmand imexxi certbot, ċwievet -d tiddefinixxi l-ismijiet tad-dominji li għalihom għandu jinħareġ iċ-ċertifikat.

Jekk din hija l-ewwel darba li tniedi certbot, inti tintalab iddaħħal l-indirizz tal-email tiegħek u taqbel mat-termini tal-użu tas-servizz. certbot imbagħad se jikkuntattja lis-server Let's Encrypt u mbagħad jivverifika li fil-fatt tikkontrolla d-dominju li għalih tlabt iċ-ċertifikat.

Jekk kollox mar tajjeb, certbot jistaqsi kif trid tikkonfigura l-konfigurazzjoni HTTPS:

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

Nirrakkomandaw li tagħżel l-għażla 2 u tagħfas ENTER. Il-konfigurazzjoni se tiġi aġġornata u Apache jerġa 'jinbeda biex japplika l-bidliet.

Iċ-ċertifikati tiegħek issa huma mniżżla, installati u jaħdmu. Ipprova tagħbija mill-ġdid is-sit tiegħek b'https:// u se tara l-ikona tas-sigurtà fil-browser tiegħek. Jekk tittestja s-server tiegħek Test tas-Server SSL Labs, huwa se jirċievi grad A.

Iċ-ċertifikati Let's Encrypt huma validi biss għal 90 jum, iżda l-pakkett certbot li għadna kif installajna se jġedded iċ-ċertifikati awtomatikament. Biex nittestjaw il-proċess ta 'aġġornament, nistgħu nagħmlu ġirja niexfa ta' certbot:

$ sudo certbot renew --dry-run 

Jekk ma tara l-ebda żbalji bħala riżultat tat-tħaddim ta 'dan il-kmand, allura kollox qed jaħdem!

Pass 5: Aċċess MySQL u phpMyAdmin

Ħafna websajts jużaw databases. L-għodda phpMyAdmin għall-ġestjoni tad-database hija diġà installata fuq is-server tagħna. Biex taċċessaha, mur fil-browser tiegħek billi tuża link bħal:

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

Il-password għall-aċċess għall-għeruq tista' tinkiseb fil-kont personali tal-MCS tiegħek (https://mcs.mail.ru/app/services/marketplace/apps/). Tinsiex tibdel il-password tal-għeruq tiegħek l-ewwel darba li tidħol!

Pass 6: Issettja l-upload tal-fajl permezz ta 'SFTP

L-iżviluppaturi jsibuha konvenjenti li jtellgħu fajls għall-websajt tiegħek permezz ta' SFTP. Biex tagħmel dan, se noħolqu utent ġdid, sejjaħlu webmaster:

$ sudo adduser webmaster

Is-sistema se titlobek biex tissettja password u ddaħħal xi data oħra.

Tibdel is-sid tad-direttorju mal-websajt tiegħek:

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

Issa ejja nbiddlu l-konfigurazzjoni SSH sabiex l-utent il-ġdid ikollu aċċess biss għal SFTP u mhux għat-terminal SSH:

$ sudo nano /etc/ssh/sshd_config

Skrollja sal-aħħar nett tal-fajl tal-konfigurazzjoni u żid il-blokk li ġej:

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

Issejvja l-fajl u erġa ibda s-servizz:

$ sudo systemctl restart sshd

Issa tista 'tikkonnettja mas-server permezz ta' kwalunkwe klijent SFTP, pereżempju, permezz ta 'FileZilla.

Total

  1. Issa taf kif toħloq direttorji ġodda u tikkonfigura hosts virtwali għall-websajts tiegħek fl-istess server.
  2. Tista 'faċilment toħloq iċ-ċertifikati SSL meħtieġa - huwa b'xejn, u se jiġu aġġornati awtomatikament.
  3. Tista' taħdem b'mod konvenjenti mad-database MySQL permezz tal-phpMyAdmin familjari.
  4. Il-ħolqien ta' kontijiet SFTP ġodda u t-twaqqif ta' drittijiet ta' aċċess ma jirrikjedux ħafna sforz. Kontijiet bħal dawn jistgħu jiġu trasferiti lil żviluppaturi tal-web ta 'partijiet terzi u amministraturi tas-sit.
  5. Tinsiex li taġġorna s-sistema perjodikament, u nirrakkomandaw ukoll li tagħmel backups - f'MCS tista 'tieħu "snapshots" tas-sistema kollha bi klikk waħda, u mbagħad, jekk meħtieġ, tniedi immaġini sħaħ.

Riżorsi użati li jistgħu jkunu utli:

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

Mill-mod, hawn Tista' taqra fuq VC kif il-fondazzjoni tagħna wżat pjattaforma għall-edukazzjoni onlajn għall-orfni bbażata fuq is-sħab MCS.

Sors: www.habr.com

Żid kumment