Mākonis labdarībai: migrācijas ceļvedis

Mākonis labdarībai: migrācijas ceļvedis

Pirms neilga laika Mail.Ru Cloud Solutions (MCS) un pakalpojums Dobro Mail.Ru uzsāka projektu ā€œMākonis labdarÄ«bas organizācijāmā€, pateicoties kuriem bezpeļņas organizācijas var bez maksas iegÅ«t MCS mākoņa platformas resursus. LabdarÄ«bas fonds "LabestÄ«bas aritmētikaĀ» piedalÄ«jās projektā un veiksmÄ«gi izvietoja daļu savas infrastruktÅ«ras, kuras pamatā ir MCS.

Pēc apstiprināŔanas NPO var saņemt virtuālo jaudu no MCS, taču turpmākai konfigurÄ“Å”anai ir nepiecieÅ”ama noteikta kvalifikācija. Å ajā materiālā mēs vēlamies sniegt konkrētus norādÄ«jumus par Ubuntu Linux servera iestatÄ«Å”anu, lai palaistu galveno fonda vietni un vairākus apakÅ”domēnus, izmantojot bezmaksas SSL sertifikātus. Daudziem Ŕī bÅ«s vienkārÅ”a rokasgrāmata, taču ceram, ka mÅ«su pieredze noderēs arÄ« citām bezpeļņas organizācijām, un ne tikai.

FYI: Ko jūs varat saņemt no MCS? 4 CPU, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB objektu krātuve.

1. darbÄ«ba: palaidiet virtuālo serveri

Sāksim tieÅ”i pie lietas un savā MCS personÄ«gajā kontā izveidosim savu virtuālo serveri (aka ā€œinstanceā€). Lietojumprogrammu veikalā ir jāizvēlas un jāinstalē gatavs LAMP steks, kas ir servera programmatÅ«ras komplekts (LAMP = Linux, Apache, MySQL, PHP), kas nepiecieÅ”ams, lai darbinātu lielāko daļu vietņu.

Mākonis labdarībai: migrācijas ceļvedis
Mākonis labdarībai: migrācijas ceļvedis
Mākonis labdarībai: migrācijas ceļvedis
Izvēlieties atbilstoÅ”o servera konfigurāciju un izveidojiet jaunu SSH atslēgu. Pēc noklikŔķināŔanas uz pogas ā€œInstalētā€ sāksies servera un LAMP steka instalÄ“Å”ana, kas prasÄ«s kādu laiku. Sistēma piedāvās arÄ« lejupielādēt jÅ«su datorā privāto atslēgu, lai pārvaldÄ«tu virtuālo maŔīnu, izmantojot konsoli, saglabājiet to.

Pēc lietojumprogrammas instalÄ“Å”anas nekavējoties iestatÄ«sim ugunsmÅ«ri, tas tiek darÄ«ts arÄ« jÅ«su personÄ«gajā kontā: dodieties uz sadaļu ā€œMākoņdatoÅ”ana -> Virtuālās maŔīnasā€ un atlasiet ā€œUgunsmÅ«ra iestatÄ«Å”anaā€:

Mākonis labdarībai: migrācijas ceļvedis
Jums jāpievieno atļauja ienākoÅ”ajai trafikai caur portu 80 un 9997. Tas ir nepiecieÅ”ams nākotnē, lai instalētu SSL sertifikātus un strādātu ar phpMyAdmin. Rezultātā noteikumu kopumam vajadzētu izskatÄ«ties Ŕādi:

Mākonis labdarībai: migrācijas ceļvedis
Tagad varat izveidot savienojumu ar serveri, izmantojot komandrindu, izmantojot SSH protokolu. Lai to izdarÄ«tu, ierakstiet Å”o komandu, norādot uz datora SSH atslēgu un servera ārējo IP adresi (to var atrast sadaļā ā€œVirtuālās maŔīnasā€):

$ ssh -i /Šæуть/Šŗ/ŠŗŠ»ŃŽŃ‡Ńƒ/key.pem ubuntu@<ip_сŠµŃ€Š²ŠµŃ€Š°>

Pirmo reizi izveidojot savienojumu ar serveri, ieteicams tajā instalēt visus paÅ”reizējos atjauninājumus un pārstartēt. Lai to izdarÄ«tu, palaidiet Ŕādas komandas:

$ sudo apt-get update

Sistēma saņems atjauninājumu sarakstu, instalē tos, izmantojot Å”o komandu, un izpildiet norādÄ«jumus:

$ sudo apt-get upgrade

Pēc atjauninājumu instalÄ“Å”anas restartējiet serveri:

$ sudo reboot

2. darbÄ«ba: iestatiet virtuālos saimniekdatorus

Daudzām bezpeļņas organizācijām vienlaikus ir jāuztur vairāki domēni vai apakÅ”domēni (piemēram, galvenā vietne un vairākas reklāmas kampaņu galvenās lapas utt.). To visu var ērti novietot uz viena servera, izveidojot vairākus virtuālos saimniekus.

Vispirms mums ir jāizveido direktoriju struktūra vietnēm, kuras tiks parādītas apmeklētājiem. Izveidosim dažus direktorijus:

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

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

Un norādiet paÅ”reizējā lietotāja Ä«paÅ”nieku:

$ 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

MainÄ«gs $USER satur lietotājvārdu, ar kuru paÅ”laik esat pieteicies (pēc noklusējuma tas ir lietotājs ubuntu). Tagad paÅ”reizējam lietotājam pieder public_html direktoriji, kuros mēs glabāsim saturu.

Mums ir arÄ« nedaudz jārediģē atļaujas, lai pārliecinātos, ka ir atļauta lasÄ«Å”anas piekļuve koplietotajam tÄ«mekļa direktorijam un visiem tajā esoÅ”ajiem failiem un mapēm. Tas ir nepiecieÅ”ams, lai vietnes lapas tiktu parādÄ«tas pareizi:

$ sudo chmod -R 755 /var/www

JÅ«su tÄ«mekļa serverim tagad ir jābÅ«t atļaujām, kas tam nepiecieÅ”amas, lai parādÄ«tu saturu. Turklāt jÅ«su lietotājam tagad ir iespēja izveidot saturu nepiecieÅ”amajos direktorijos.

Direktorijā /var/www/html jau ir fails index.php, pārkopēsim to uz mÅ«su jaunajiem direktorijiem ā€” pagaidām tāds bÅ«s mÅ«su saturs:

$ 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

Tagad jums ir jāpārliecinās, ka lietotājs var piekļūt jūsu vietnei. Lai to izdarītu, mēs vispirms konfigurēsim virtuālās resursdatora failus, kas nosaka, kā Apache tīmekļa serveris atbildēs uz pieprasījumiem dažādiem domēniem.

Pēc noklusējuma Apache ir virtuālā resursdatora fails 000-default.conf, ko mēs varam izmantot kā sākumpunktu. Mēs to kopēsim, lai izveidotu virtuālo saimniekdatoru failus katram mÅ«su domēnam. Mēs sāksim ar vienu domēnu, to konfigurēsim, kopēsim uz citu domēnu un pēc tam vēlreiz veiksim nepiecieÅ”amos labojumus.

Ubuntu noklusējuma konfigurācija paredz, ka katram virtuālā resursdatora failam ir *.conf paplaÅ”inājums.

Sāksim ar pirmā domēna faila kopÄ“Å”anu:

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

Atveriet jaunu failu redaktorā ar root tiesībām:

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

Rediģējiet datus Ŕādi, norādot portu 80, jÅ«su datus ServerAdmin, ServerName, ServerAlias, kā arÄ« ceļu uz jÅ«su vietnes saknes direktoriju, saglabājiet failu (Ctrl+X, pēc tam 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 iestata primāro domēnu, kuram ir jāatbilst virtuālā saimniekdatora nosaukumam. Tam ir jābūt jūsu domēna vārdam. Otrkārt, ServerAlias, definē citus nosaukumus, kas jāinterpretē tā, it kā tas būtu primārais domēns. Tas ir ērti, lai izmantotu papildu domēna nosaukumus, piemēram, izmantojot www.

Kopēsim Å”o konfigurāciju citam saimniekdatoram un arÄ« rediģēsim to tādā paŔā veidā:

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

Savām vietnēm varat izveidot tik daudz direktoriju un virtuālo saimniekdatoru, cik vēlaties! Tagad, kad esam izveidojuÅ”i savus virtuālo saimniekdatoru failus, mums tie ir jāiespējo. Mēs varam izmantot utilÄ«tu a2ensite, lai iespējotu katru no mÅ«su vietnēm, piemēram:

$ sudo a2ensite a-dobra.ru.conf

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

Pēc noklusējuma 80. ports ir aizvērts programmā LAMP, un mums tas bÅ«s nepiecieÅ”ams vēlāk, lai instalētu SSL sertifikātu. Tātad nekavējoties rediģēsim failu ports.conf un pēc tam restartēsim Apache:

$ sudo nano /etc/apache2/ports.conf

Pievienojiet jaunu rindiņu un saglabājiet failu, lai tas izskatÄ«tos Ŕādi:

Listen 80
Listen 443
Listen 9997

Pēc iestatÄ«jumu pabeigÅ”anas jums ir jārestartē Apache, lai visas izmaiņas stātos spēkā:

$ sudo systemctl reload apache2

3. darbÄ«ba: iestatiet domēna nosaukumus

Tālāk jums jāpievieno DNS ieraksti, kas norādīs uz jūsu jauno serveri. Lai pārvaldītu domēnus, mūsu labā fonda aritmētika izmanto pakalpojumu dns-master.ru, mēs to parādīsim ar piemēru.

A ieraksta iestatÄ«Å”ana galvenajam domēnam parasti tiek norādÄ«ta Ŕādi (zÄ«me @):

Mākonis labdarībai: migrācijas ceļvedis
ApakÅ”domēnu A ieraksts parasti tiek norādÄ«ts Ŕādi:

Mākonis labdarībai: migrācijas ceļvedis
IP adrese ir tikko izveidotā Linux servera adrese. Varat norādīt TTL = 3600.

Pēc kāda laika jūsu vietni būs iespējams apmeklēt, bet pagaidām tikai caur http://. Nākamajā solī mēs pievienosim atbalstu https://.

4. darbÄ«ba. Iestatiet bezmaksas SSL sertifikātus

Varat iegÅ«t bezmaksas Let's Encrypt SSL sertifikātus savai galvenajai vietnei un visiem apakÅ”domēniem. Varat arÄ« konfigurēt to automātisko atjaunoÅ”anu, kas ir ļoti ērti. Lai iegÅ«tu SSL sertifikātus, savā serverÄ« instalējiet Certbot:

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

Instalējiet Certbot pakotni Apache, izmantojot apt:

$ sudo apt install python-certbot-apache 

Tagad Certbot ir gatavs lietoŔanai, palaidiet komandu:

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

Šī komanda palaiž certbot, atslēgas -d definējiet to domēnu nosaukumus, kuriem jāizsniedz sertifikāts.

Ja Ŕī ir pirmā reize, kad palaižat certbot, jums tiks lÅ«gts ievadÄ«t savu e-pasta adresi un piekrist pakalpojuma lietoÅ”anas noteikumiem. Pēc tam certbot sazināsies ar Let's Encrypt serveri un pēc tam pārbaudÄ«s, vai jÅ«s patieŔām kontrolējat domēnu, kuram pieprasÄ«jāt sertifikātu.

Ja viss noritēja labi, certbot jautās, kā vēlaties konfigurēt HTTPS konfigurāciju:

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

Mēs iesakām izvēlēties 2. opciju un nospiest ENTER. Konfigurācija tiks atjaunināta un Apache tiks restartēts, lai piemērotu izmaiņas.

JÅ«su sertifikāti tagad ir lejupielādēti, instalēti un darbojas. Mēģiniet atkārtoti ielādēt vietni, izmantojot https://, un pārlÅ«kprogrammā tiks parādÄ«ta droŔības ikona. Ja pārbaudāt savu serveri SSL Labs servera pārbaude, viņŔ saņems A atzÄ«mi.

Let's Encrypt sertifikāti ir derÄ«gi tikai 90 dienas, taču tikko instalētā certbot pakotne automātiski atjaunos sertifikātus. Lai pārbaudÄ«tu atjaunināŔanas procesu, mēs varam veikt certbot sauso darbÄ«bu:

$ sudo certbot renew --dry-run 

Ja Ŕīs komandas palaiŔanas rezultātā neredzat kļūdas, tad viss darbojas!

5. darbÄ«ba: piekļūstiet MySQL un phpMyAdmin

Daudzas vietnes izmanto datu bāzes. Mūsu serverī jau ir instalēts datu bāzes pārvaldības rīks phpMyAdmin. Lai tai piekļūtu, atveriet savu pārlūkprogrammu, izmantojot saiti, piemēram:

https://<ip-Š°Š“рŠµŃ сŠµŃ€Š²ŠµŃ€Š°>:9997

Paroli root piekļuvei var iegūt savā MCS personīgajā kontā (https://mcs.mail.ru/app/services/marketplace/apps/). Pirmo reizi piesakoties, neaizmirstiet nomainīt savu root paroli!

6. darbÄ«ba: iestatiet failu augÅ”upielādi, izmantojot SFTP

Izstrādātājiem bÅ«s ērti augÅ”upielādēt vietnes failus, izmantojot SFTP. Lai to izdarÄ«tu, mēs izveidosim jaunu lietotāju, sauksim viņu par tÄ«mekļa pārzini:

$ sudo adduser webmaster

Sistēma lūgs iestatīt paroli un ievadīt dažus citus datus.

Direktorija Ä«paÅ”nieka maiņa ar jÅ«su vietni:

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

Tagad mainīsim SSH konfigurāciju, lai jaunajam lietotājam būtu piekļuve tikai SFTP, nevis SSH terminālim:

$ sudo nano /etc/ssh/sshd_config

Ritiniet līdz konfigurācijas faila beigām un pievienojiet Ŕādu bloku:

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

Saglabājiet failu un restartējiet pakalpojumu:

$ sudo systemctl restart sshd

Tagad jūs varat izveidot savienojumu ar serveri, izmantojot jebkuru SFTP klientu, piemēram, izmantojot FileZilla.

Kopsavilkums

  1. Tagad jÅ«s zināt, kā izveidot jaunus direktorijus un konfigurēt virtuālos saimniekdatorus savām vietnēm tajā paŔā serverÄ«.
  2. JÅ«s varat viegli izveidot nepiecieÅ”amos SSL sertifikātus ā€“ tas ir bez maksas, un tie tiks automātiski atjaunināti.
  3. Jūs varat ērti strādāt ar MySQL datu bāzi, izmantojot pazīstamo phpMyAdmin.
  4. Jaunu SFTP kontu izveide un piekļuves tiesÄ«bu iestatÄ«Å”ana neprasa daudz pūļu. Šādus kontus var pārsÅ«tÄ«t treÅ”o puÅ”u tÄ«mekļa izstrādātājiem un vietņu administratoriem.
  5. Neaizmirstiet periodiski atjaunināt sistēmu, kā arÄ« iesakām izveidot dublējumus - MCS ar vienu klikŔķi varat uzņemt visas sistēmas ā€œmomentuzņēmumusā€ un pēc tam, ja nepiecieÅ”ams, palaist veselus attēlus.

Izmantotie resursi, kas var būt noderīgi:

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

Starp citu, Å”eit Vietnē VC varat lasÄ«t, kā mÅ«su fonds izvietoja bāreņu tieÅ”saistes izglÄ«tÄ«bas platformu, kuras pamatā ir MCS mākonis.

Avots: www.habr.com

Pievieno komentāru