Cloud për bamirësi: Udhëzues migrimi

Cloud për bamirësi: Udhëzues migrimi

Jo shumë kohë më parë, Mail.Ru Cloud Solutions (MCS) dhe shërbimi Dobro Mail.Ru nisën projektin "Re për bamirësi”, falë të cilave organizatat jofitimprurëse mund të marrin burimet e platformës cloud MCS falas. Fondacioni bamirës "Aritmetika e mirësisë» mori pjesë në projekt dhe vendosi me sukses një pjesë të infrastrukturës së saj bazuar në MCS.

Pas kalimit të vlefshmërisë, një OJF mund të marrë kapacitet virtual nga MCS, por konfigurimi i mëtejshëm kërkon kualifikime të caktuara. Në këtë material, ne duam të ndajmë udhëzime specifike për konfigurimin e një serveri të bazuar në Ubuntu Linux për të drejtuar uebsajtin kryesor të themelimit dhe një numër nëndomainësh duke përdorur certifikata SSL falas. Për shumë, ky do të jetë një udhëzues i thjeshtë, por shpresojmë që përvoja jonë të jetë e dobishme për organizata të tjera jofitimprurëse, dhe jo vetëm.

FYI: Çfarë mund të merrni nga MCS? 4 CPU, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB ruajtje objektesh.

Hapi 1: hapni serverin virtual

Le të shkojmë drejtpërdrejt te pika dhe të krijojmë serverin tonë virtual (aka "shembull") në llogarinë tuaj personale MCS. Në dyqanin e aplikacioneve, ju duhet të zgjidhni dhe instaloni një pirg të gatshëm LAMP, i cili është një grup softuerësh serverësh (LAMP = Linux, Apache, MySQL, PHP) i nevojshëm për të ekzekutuar shumicën e faqeve të internetit.

Cloud për bamirësi: Udhëzues migrimi
Cloud për bamirësi: Udhëzues migrimi
Cloud për bamirësi: Udhëzues migrimi
Zgjidhni konfigurimin e duhur të serverit dhe krijoni një çelës të ri SSH. Pasi të klikoni në butonin "Instalo", do të fillojë instalimi i serverit dhe steka LAMP, kjo do të marrë pak kohë. Sistemi do të ofrojë gjithashtu shkarkimin e një çelësi privat në kompjuterin tuaj për të menaxhuar makinën virtuale përmes tastierës, ruajeni atë.

Pas instalimit të aplikacionit, le të konfigurojmë menjëherë murin e zjarrit, kjo bëhet edhe në llogarinë tuaj personale: shkoni te seksioni "Cloud computing -> Makinat virtuale" dhe zgjidhni "Vendosja e murit të zjarrit":

Cloud për bamirësi: Udhëzues migrimi
Ju duhet të shtoni leje për trafikun në hyrje përmes portit 80 dhe 9997. Kjo është e nevojshme në të ardhmen për të instaluar certifikatat SSL dhe për të punuar me phpMyAdmin. Si rezultat, grupi i rregullave duhet të duket si ky:

Cloud për bamirësi: Udhëzues migrimi
Tani mund të lidheni me serverin tuaj nëpërmjet linjës së komandës duke përdorur protokollin SSH. Për ta bërë këtë, shkruani komandën e mëposhtme, duke treguar çelësin SSH në kompjuterin tuaj dhe adresën IP të jashtme të serverit tuaj (mund ta gjeni në seksionin "Makinat virtuale"):

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

Kur lidheni me serverin për herë të parë, rekomandohet të instaloni të gjitha përditësimet aktuale në të dhe ta rindizni atë. Për ta bërë këtë, ekzekutoni komandat e mëposhtme:

$ sudo apt-get update

Sistemi do të marrë një listë të përditësimeve, do t'i instalojë ato duke përdorur këtë komandë dhe do të ndjekë udhëzimet:

$ sudo apt-get upgrade

Pas instalimit të përditësimeve, rinisni serverin:

$ sudo reboot

Hapi 2: Vendosni hostet virtualë

Shumë organizata jofitimprurëse duhet të mbajnë disa domene ose nënfusha në të njëjtën kohë (për shembull, një faqe interneti kryesore dhe disa faqe uljeje për fushatat promovuese, etj.). E gjithë kjo mund të vendoset me lehtësi në një server duke krijuar disa host virtual.

Fillimisht duhet të krijojmë një strukturë drejtorie për faqet që do t'u shfaqen vizitorëve. Le të krijojmë disa drejtori:

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

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

Dhe specifikoni pronarin e përdoruesit aktual:

$ 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

Ndryshore $USER përmban emrin e përdoruesit me të cilin jeni regjistruar aktualisht (si parazgjedhje ky është përdoruesi ubuntu). Tani përdoruesi aktual zotëron drejtoritë public_html ku do të ruajmë përmbajtjen.

Ne gjithashtu duhet të modifikojmë pak lejet për t'u siguruar që qasja e leximit lejohet në direktorinë e përbashkët të ueb-it dhe të gjithë skedarët dhe dosjet që ai përmban. Kjo është e nevojshme që faqet e faqes të shfaqen siç duhet:

$ sudo chmod -R 755 /var/www

Serveri juaj i uebit tani duhet të ketë lejet që i nevojiten për të shfaqur përmbajtjen. Përveç kësaj, përdoruesi juaj tani ka mundësinë të krijojë përmbajtje në drejtoritë e kërkuara.

Ekziston tashmë një skedar index.php në drejtorinë /var/www/html, le ta kopjojmë atë në drejtoritë tona të reja - kjo do të jetë përmbajtja jonë për momentin:

$ 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

Tani ju duhet të siguroheni që përdoruesi mund të hyjë në faqen tuaj. Për ta bërë këtë, ne fillimisht do të konfigurojmë skedarët e hostit virtual, të cilët përcaktojnë se si serveri i uebit Apache do t'i përgjigjet kërkesave për domene të ndryshme.

Si parazgjedhje, Apache ka një skedar host virtual 000-default.conf që mund ta përdorim si pikënisje. Ne do ta kopjojmë këtë për të krijuar skedarë pritës virtualë për secilin nga domenet tona. Do të fillojmë me një domen, do ta konfigurojmë, do ta kopjojmë në një domen tjetër dhe më pas do të bëjmë sërish modifikimet e nevojshme.

Konfigurimi i parazgjedhur i Ubuntu kërkon që çdo skedar pritës virtual të ketë një shtesë *.conf.

Le të fillojmë duke kopjuar skedarin për domenin e parë:

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

Hapni një skedar të ri në një redaktues me të drejta rrënjësore:

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

Redaktoni të dhënat si më poshtë, duke specifikuar portin 80, të dhënat tuaja për ServerAdmin, ServerName, ServerAlias, si dhe shtegun për në direktorinë rrënjë të faqes tuaj, ruani skedarin (Ctrl+X, pastaj 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 cakton domenin primar, i cili duhet të përputhet me emrin e hostit virtual. Ky duhet të jetë emri juaj i domenit. Së dyti, ServerAlias, përcakton emra të tjerë që duhet të interpretohen sikur të ishin domeni primar. Kjo është e përshtatshme për përdorimin e emrave shtesë të domeneve, për shembull duke përdorur www.

Le ta kopjojmë këtë konfigurim për një host tjetër dhe gjithashtu ta modifikojmë në të njëjtën mënyrë:

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

Ju mund të krijoni sa më shumë drejtori dhe host virtual për faqet tuaja të internetit që dëshironi! Tani që kemi krijuar skedarët tanë të hostit virtual, duhet t'i aktivizojmë ato. Ne mund të përdorim programin a2ensite për të aktivizuar secilën prej sajteve tona si kjo:

$ sudo a2ensite a-dobra.ru.conf

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

Si parazgjedhje, porta 80 është e mbyllur në LAMP dhe do të na duhet më vonë për të instaluar një certifikatë SSL. Pra, le të modifikojmë menjëherë skedarin ports.conf dhe më pas rinisim Apache:

$ sudo nano /etc/apache2/ports.conf

Shtoni një rresht të ri dhe ruani skedarin që të duket kështu:

Listen 80
Listen 443
Listen 9997

Pas përfundimit të cilësimeve, duhet të rinisni Apache që të gjitha ndryshimet të hyjnë në fuqi:

$ sudo systemctl reload apache2

Hapi 3: Vendosni emrat e domain

Tjetra, duhet të shtoni regjistrime DNS që do të tregojnë serverin tuaj të ri. Për të menaxhuar domenet, Fondacioni ynë Arithmetic of Good përdor shërbimin dns-master.ru, ne do ta tregojmë atë me një shembull.

Vendosja e një regjistrimi A për domenin kryesor zakonisht tregohet si më poshtë (shenjë @):

Cloud për bamirësi: Udhëzues migrimi
Rekordi A për nëndomenet zakonisht specifikohet si kjo:

Cloud për bamirësi: Udhëzues migrimi
Adresa IP është adresa e serverit Linux që sapo krijuam. Ju mund të specifikoni TTL = 3600.

Pas ca kohësh, do të jetë e mundur të vizitoni faqen tuaj, por tani për tani vetëm përmes http://. Në hapin tjetër do të shtojmë mbështetje https://.

Hapi 4: Vendosni certifikatat SSL falas

Ju mund të merrni falas certifikatat Let's Encrypt SSL për faqen tuaj kryesore dhe të gjitha nënfushat. Ju gjithashtu mund të konfiguroni rinovimin automatik të tyre, gjë që është shumë e përshtatshme. Për të marrë certifikata SSL, instaloni Certbot në serverin tuaj:

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

Instaloni paketën Certbot për Apache duke përdorur apt:

$ sudo apt install python-certbot-apache 

Tani Certbot është gati për t'u përdorur, ekzekutoni komandën:

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

Kjo komandë ekzekuton certbot, çelësat -d të përcaktojë emrat e domeneve për të cilat duhet të lëshohet certifikata.

Nëse kjo është hera e parë që lëshoni certbot, do t'ju kërkohet të shkruani adresën tuaj të emailit dhe të pranoni kushtet e përdorimit të shërbimit. certbot më pas do të kontaktojë serverin Let's Encrypt dhe më pas do të verifikojë që ju vërtet e kontrolloni domenin për të cilin keni kërkuar certifikatën.

Nëse gjithçka shkoi mirë, certbot do të pyesë se si dëshironi të konfiguroni konfigurimin 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):

Ne ju rekomandojmë të zgjidhni opsionin 2 dhe të shtypni ENTER. Konfigurimi do të përditësohet dhe Apache do të riniset për të aplikuar ndryshimet.

Certifikatat tuaja tani janë shkarkuar, instaluar dhe funksionojnë. Provoni të ringarkoni faqen tuaj me https:// dhe do të shihni ikonën e sigurisë në shfletuesin tuaj. Nëse testoni serverin tuaj Testi i serverit SSL Labs, ai do të marrë notën A.

Certifikatat Let's Encrypt janë të vlefshme vetëm për 90 ditë, por paketa certbot që sapo instaluam do të rinovojë certifikatat automatikisht. Për të testuar procesin e përditësimit, mund të bëjmë një ekzekutim të thatë të certbot:

$ sudo certbot renew --dry-run 

Nëse nuk shihni ndonjë gabim si rezultat i ekzekutimit të kësaj komande, atëherë gjithçka po funksionon!

Hapi 5: Hyni në MySQL dhe phpMyAdmin

Shumë faqe interneti përdorin baza të të dhënave. Mjeti phpMyAdmin për menaxhimin e bazës së të dhënave është instaluar tashmë në serverin tonë. Për të hyrë në të, shkoni te shfletuesi juaj duke përdorur një lidhje si:

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

Fjalëkalimi për qasje në rrënjë mund të merret në llogarinë tuaj personale MCS (https://mcs.mail.ru/app/services/marketplace/apps/). Mos harroni të ndryshoni fjalëkalimin tuaj root herën e parë që hyni!

Hapi 6: Vendosni ngarkimin e skedarëve përmes SFTP

Zhvilluesit do ta kenë të përshtatshëm të ngarkojnë skedarë për faqen tuaj të internetit përmes SFTP. Për ta bërë këtë, ne do të krijojmë një përdorues të ri, ta quajmë webmaster:

$ sudo adduser webmaster

Sistemi do t'ju kërkojë të vendosni një fjalëkalim dhe të futni disa të dhëna të tjera.

Ndryshimi i pronarit të drejtorisë me faqen tuaj të internetit:

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

Tani le të ndryshojmë konfigurimin SSH në mënyrë që përdoruesi i ri të ketë akses vetëm në SFTP dhe jo në terminalin SSH:

$ sudo nano /etc/ssh/sshd_config

Lëvizni deri në fund të skedarit të konfigurimit dhe shtoni bllokun e mëposhtëm:

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

Ruani skedarin dhe rinisni shërbimin:

$ sudo systemctl restart sshd

Tani mund të lidheni me serverin përmes çdo klienti SFTP, për shembull, përmes FileZilla.

Total

  1. Tani ju e dini se si të krijoni drejtori të reja dhe të konfiguroni hostet virtualë për faqet tuaja të internetit brenda të njëjtit server.
  2. Mund të krijoni me lehtësi certifikatat e nevojshme SSL - është falas dhe ato do të përditësohen automatikisht.
  3. Ju mund të punoni me lehtësi me bazën e të dhënave MySQL përmes phpMyAdmin të njohur.
  4. Krijimi i llogarive të reja SFTP dhe vendosja e të drejtave të aksesit nuk kërkon shumë përpjekje. Llogari të tilla mund të transferohen te zhvilluesit e uebit dhe administratorët e faqeve të palëve të treta.
  5. Mos harroni të përditësoni periodikisht sistemin, dhe ne gjithashtu ju rekomandojmë të bëni kopje rezervë - në MCS mund të bëni "fotografi" të të gjithë sistemit me një klik dhe më pas, nëse është e nevojshme, nisni imazhe të tëra.

Burimet e përdorura që mund të jenë të dobishme:

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

Rastësisht, këtu Mund të lexoni në VC se si fondacioni ynë vendosi një platformë për edukimin në internet për jetimët bazuar në renë kompjuterike MCS.

Burimi: www.habr.com

Shto një koment