Debesis labdarai: migracijos vadovas

Debesis labdarai: migracijos vadovas

Neseniai Mail.Ru Cloud Solutions (MCS) ir Dobro Mail.Ru paslauga pradėjo projektą „Debesis labdarai“, kurio dėka ne pelno organizacijos gali nemokamai gauti MCS debesies platformos išteklius. Labdaros fondas "Gerumo aritmetika» dalyvavo projekte ir sėkmingai įdiegė dalį MCS paremtos infrastruktūros.

Išlaikęs patvirtinimą, NPO gali gauti virtualų pajėgumą iš MCS, tačiau tolesnei konfigūracijai reikia tam tikrų kvalifikacijų. Šioje medžiagoje norime pasidalinti konkrečiomis instrukcijomis, kaip nustatyti Ubuntu Linux pagrįstą serverį, kad būtų galima paleisti pagrindinę pagrindinę svetainę ir keletą subdomenų naudojant nemokamus SSL sertifikatus. Daugeliui tai bus paprastas vadovas, tačiau tikimės, kad mūsų patirtis bus naudinga ir kitoms pelno nesiekiančioms organizacijoms, ir ne tik.

FYI: Ką galite gauti iš MCS? 4 CPU, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB objektų saugykla.

1 veiksmas: paleiskite virtualų serverį

Eikime tiesiai prie reikalo ir sukurkime savo virtualų serverį (dar žinomą kaip „pavyzdys“) savo MCS asmeninėje paskyroje. Programėlių parduotuvėje turite pasirinkti ir įdiegti paruoštą LAMP stacką, kuris yra serverio programinės įrangos rinkinys (LAMP = Linux, Apache, MySQL, PHP), reikalingas daugumai svetainių paleisti.

Debesis labdarai: migracijos vadovas
Debesis labdarai: migracijos vadovas
Debesis labdarai: migracijos vadovas
Pasirinkite tinkamą serverio konfigūraciją ir sukurkite naują SSH raktą. Paspaudus mygtuką „Įdiegti“, prasidės serverio ir LAMP dėklo diegimas, tai užtruks šiek tiek laiko. Sistema taip pat pasiūlys į kompiuterį atsisiųsti privatų raktą virtualiajai mašinai valdyti per konsolę, išsaugoti.

Įdiegę programą, iš karto nustatykime užkardą, tai taip pat daroma jūsų asmeninėje paskyroje: eikite į skyrių „Debesų kompiuterija -> Virtualios mašinos“ ir pasirinkite „Ugniasienės nustatymas“:

Debesis labdarai: migracijos vadovas
Turite pridėti leidimą įeinančiam srautui per 80 ir 9997 prievadus. Tai būtina ateityje norint įdiegti SSL sertifikatus ir dirbti su phpMyAdmin. Dėl to taisyklių rinkinys turėtų atrodyti taip:

Debesis labdarai: migracijos vadovas
Dabar galite prisijungti prie savo serverio per komandinę eilutę naudodami SSH protokolą. Norėdami tai padaryti, įveskite šią komandą, nukreipdami į kompiuterio SSH raktą ir išorinį serverio IP adresą (jį rasite skiltyje „Virtualios mašinos“):

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

Pirmą kartą jungiantis prie serverio, rekomenduojama jame įdiegti visus esamus naujinimus ir paleisti iš naujo. Norėdami tai padaryti, paleiskite šias komandas:

$ sudo apt-get update

Sistema gaus atnaujinimų sąrašą, įdiegs juos naudodami šią komandą ir vykdys instrukcijas:

$ sudo apt-get upgrade

Įdiegę naujinimus iš naujo paleiskite serverį:

$ sudo reboot

2 veiksmas: nustatykite virtualius pagrindinius kompiuterius

Daugeliui ne pelno organizacijų vienu metu reikia prižiūrėti kelis domenus arba padomenius (pavyzdžiui, pagrindinę svetainę ir kelis nukreipimo puslapius reklaminėms kampanijoms ir pan.). Visa tai patogiai galima patalpinti viename serveryje sukuriant kelis virtualius hostus.

Pirmiausia turime sukurti svetainių, kurios bus rodomos lankytojams, katalogų struktūrą. Sukurkime keletą katalogų:

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

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

Ir nurodykite dabartinio vartotojo savininką:

$ 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

Kintamas $USER yra vartotojo vardas, kuriuo šiuo metu esate prisijungę (pagal numatytuosius nustatymus tai yra vartotojas ubuntu). Dabar dabartiniam vartotojui priklauso public_html katalogai, kuriuose saugosime turinį.

Taip pat turime šiek tiek redaguoti leidimus, kad įsitikintume, jog bendrai naudojamo žiniatinklio katalogo ir visų jame esančių failų bei aplankų skaitymo prieiga yra leista. Tai būtina, kad svetainės puslapiai būtų rodomi teisingai:

$ sudo chmod -R 755 /var/www

Dabar jūsų žiniatinklio serveris turėtų turėti leidimus, kurių reikia turiniui rodyti. Be to, jūsų vartotojas dabar turi galimybę kurti turinį reikiamuose kataloguose.

Kataloge /var/www/html jau yra failas index.php, nukopijuokime jį į naujus katalogus – kol kas toks bus mūsų turinys:

$ 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

Dabar turite įsitikinti, kad vartotojas gali pasiekti jūsų svetainę. Norėdami tai padaryti, pirmiausia sukonfigūruosime virtualaus pagrindinio kompiuterio failus, kurie nustato, kaip Apache žiniatinklio serveris reaguos į užklausas skirtingiems domenams.

Pagal numatytuosius nustatymus „Apache“ turi virtualų pagrindinio kompiuterio failą 000-default.conf, kurį galime naudoti kaip pradžios tašką. Nukopijuosime tai, kad sukurtume virtualaus pagrindinio kompiuterio failus kiekvienam savo domenui. Pradėsime nuo vieno domeno, jį sukonfigūruosime, nukopijuosime į kitą domeną ir vėl atliksime reikiamus pakeitimus.

Numatytoji Ubuntu konfigūracija reikalauja, kad kiekvienas virtualaus pagrindinio kompiuterio failas turėtų *.conf plėtinį.

Pradėkime nuo pirmojo domeno failo nukopijavimo:

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

Atidarykite naują failą redaktoriuje su root teisėmis:

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

Redaguokite duomenis taip, nurodydami 80 prievadą, savo duomenis ServerAdmin, ServerName, ServerAlias, taip pat kelią į savo svetainės šakninį katalogą, išsaugokite failą (Ctrl+X, tada 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 nustato pirminį domeną, kuris turi atitikti virtualaus pagrindinio kompiuterio pavadinimą. Tai turi būti jūsų domeno vardas. antra, ServerAlias, apibrėžia kitus pavadinimus, kurie turėtų būti interpretuojami taip, lyg tai būtų pagrindinis domenas. Tai patogu naudojant papildomus domenų vardus, pavyzdžiui, naudojant www.

Nukopijuokime šią konfigūraciją kitam kompiuteriui ir taip pat redaguosime ją tokiu pačiu būdu:

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

Galite sukurti tiek daug katalogų ir virtualių prieglobų savo svetainėms, kiek norite! Dabar, kai sukūrėme savo virtualaus pagrindinio kompiuterio failus, turime juos įjungti. Galime naudoti a2ensite įrankį, kad įgalintume kiekvieną iš mūsų svetainių, pavyzdžiui:

$ sudo a2ensite a-dobra.ru.conf

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

Pagal numatytuosius nustatymus 80 prievadas uždarytas LAMP ir mums jo prireiks vėliau, norint įdiegti SSL sertifikatą. Taigi nedelsdami redaguosime failą ports.conf ir iš naujo paleiskite „Apache“:

$ sudo nano /etc/apache2/ports.conf

Pridėkite naują eilutę ir išsaugokite failą, kad jis atrodytų taip:

Listen 80
Listen 443
Listen 9997

Atlikę nustatymus, turite iš naujo paleisti „Apache“, kad visi pakeitimai įsigaliotų:

$ sudo systemctl reload apache2

3 veiksmas: nustatykite domenų vardus

Tada turite pridėti DNS įrašus, kurie nurodys jūsų naują serverį. Norėdami valdyti domenus, mūsų Aritmetika gero pagrindo naudoja dns-master.ru paslaugą, parodysime ją pavyzdžiu.

Pagrindinio domeno A įrašo nustatymas paprastai nurodomas taip (ženklas @):

Debesis labdarai: migracijos vadovas
Subdomenų A įrašas paprastai nurodomas taip:

Debesis labdarai: migracijos vadovas
IP adresas yra ką tik sukurto Linux serverio adresas. Galite nurodyti TTL = 3600.

Po kurio laiko bus galima apsilankyti jūsų svetainėje, bet kol kas tik per http://. Kitame žingsnyje pridėsime palaikymą https://.

4 veiksmas: nustatykite nemokamus SSL sertifikatus

Galite gauti nemokamus Let's Encrypt SSL sertifikatus savo pagrindinei svetainei ir visiems padomeniams. Taip pat galite sukonfigūruoti jų automatinį atnaujinimą, o tai labai patogu. Norėdami gauti SSL sertifikatus, įdiekite Certbot savo serveryje:

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

Įdiekite „Certbot“ paketą, skirtą „Apache“, naudodami apt:

$ sudo apt install python-certbot-apache 

Dabar Certbot yra paruoštas naudoti, paleiskite komandą:

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

Ši komanda paleidžia certbot, keys -d apibrėžti domenų, kuriems turėtų būti išduotas sertifikatas, pavadinimus.

Jei certbot paleidžiate pirmą kartą, jūsų bus paprašyta įvesti savo el. pašto adresą ir sutikti su paslaugos naudojimo sąlygomis. Tada certbot susisieks su Let's Encrypt serveriu ir patikrins, ar tikrai valdote domeną, kuriam paprašėte sertifikato.

Jei viskas klostėsi gerai, certbot paklaus, kaip norite konfigūruoti HTTPS konfigūraciją:

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

Rekomenduojame pasirinkti 2 parinktį ir paspausti ENTER. Konfigūracija bus atnaujinta ir „Apache“ bus paleista iš naujo, kad būtų pritaikyti pakeitimai.

Jūsų sertifikatai dabar atsisiųsti, įdiegti ir veikia. Pabandykite iš naujo įkelti svetainę naudodami https:// ir naršyklėje pamatysite saugos piktogramą. Jei išbandysite savo serverį SSL Labs serverio testas, jis gaus A pažymį.

Encrypt sertifikatai galioja tik 90 dienų, tačiau ką tik įdiegtas certbot paketas sertifikatus atnaujins automatiškai. Norėdami išbandyti atnaujinimo procesą, galime atlikti sausą certbot paleidimą:

$ sudo certbot renew --dry-run 

Jei paleidus šią komandą nematote klaidų, vadinasi, viskas veikia!

5 veiksmas: pasiekite „MySQL“ ir „phpMyAdmin“.

Daugelis svetainių naudoja duomenų bazes. Mūsų serveryje jau įdiegtas duomenų bazių valdymo įrankis phpMyAdmin. Norėdami jį pasiekti, eikite į naršyklę naudodami tokią nuorodą:

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

Root prieigos slaptažodį galite gauti asmeninėje MCS paskyroje (https://mcs.mail.ru/app/services/marketplace/apps/). Nepamirškite pakeisti root slaptažodžio pirmą kartą prisijungę!

6 veiksmas: nustatykite failų įkėlimą per SFTP

Kūrėjams bus patogu įkelti failus į savo svetainę per SFTP. Norėdami tai padaryti, sukursime naują vartotoją, pavadinsime jį žiniatinklio valdytoju:

$ sudo adduser webmaster

Sistema paprašys nustatyti slaptažodį ir įvesti kai kuriuos kitus duomenis.

Katalogo savininko keitimas naudojant svetainę:

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

Dabar pakeiskime SSH konfigūraciją, kad naujasis vartotojas turėtų prieigą tik prie SFTP, o ne prie SSH terminalo:

$ sudo nano /etc/ssh/sshd_config

Slinkite iki pat konfigūracijos failo pabaigos ir pridėkite šį bloką:

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

Išsaugokite failą ir paleiskite paslaugą iš naujo:

$ sudo systemctl restart sshd

Dabar galite prisijungti prie serverio naudodami bet kurį SFTP klientą, pavyzdžiui, per FileZilla.

Visas

  1. Dabar jūs žinote, kaip kurti naujus katalogus ir konfigūruoti virtualius prieglobus savo svetainėms tame pačiame serveryje.
  2. Galite nesunkiai susikurti reikiamus SSL sertifikatus – tai nemokama, be to, jie bus atnaujinami automatiškai.
  3. Galite patogiai dirbti su MySQL duomenų baze per pažįstamą phpMyAdmin.
  4. Naujų SFTP paskyrų sukūrimas ir prieigos teisių nustatymas nereikalauja daug pastangų. Tokios paskyros gali būti perduotos trečiųjų šalių žiniatinklio kūrėjams ir svetainių administratoriams.
  5. Nepamirškite periodiškai atnaujinti sistemos, taip pat rekomenduojame daryti atsargines kopijas – MCS vienu spustelėjimu galite padaryti visos sistemos „momentines nuotraukas“, o tada, jei reikia, paleisti visus vaizdus.

Naudoti ištekliai, kurie gali būti naudingi:

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

Beje, čia VC galite perskaityti, kaip mūsų fondas įdiegė internetinio mokymo našlaičiams platformą, pagrįstą MCS debesimi.

Šaltinis: www.habr.com

Добавить комментарий