Кайрымдуулук үчүн булут: Миграция колдонмосу

Кайрымдуулук үчүн булут: Миграция колдонмосу

Жакында эле, Mail.Ru Cloud Solutions (MCS) жана Dobro Mail.Ru кызматы "долбоорду ишке киргизди.Кайрымдуулук үчүн булут”, мунун аркасында коммерциялык эмес уюмдар MCS булут платформасынын ресурстарын бекер ала алышат. Кайрымдуулук фонду "Жакшылыктын арифметикасы» долбоорго катышып, MCS базасында инфраструктурасынын бир бөлүгүн ийгиликтүү жайгаштырды.

Валидациядан өткөндөн кийин тескөөчү MCSден виртуалдык мүмкүнчүлүктү ала алат, бирок андан аркы конфигурация белгилүү бир квалификацияны талап кылат. Бул материалда биз акысыз SSL сертификаттарын колдонуу менен негизги веб-сайтты жана бир катар субдомендерди иштетүү үчүн Ubuntu Linux негизиндеги серверди орнотуу боюнча конкреттүү нускамаларды бөлүшкүбүз келет. Көптөр үчүн бул жөнөкөй жол болот, бирок биздин тажрыйбабыз башка коммерциялык эмес уюмдар үчүн гана эмес, пайдалуу болот деп ишенебиз.

FYI: MCSтен эмне ала аласыз? 4 CPU, 32 ГБ оперативдик эс, 1 ТБ HDD, Ubuntu Linux OS, 500 ГБ объект сактагыч.

1-кадам: виртуалдык серверди ишке киргизиңиз

Келгиле, түз сөзгө өтүп, MCS жеке аккаунтуңузда виртуалдык серверибизди (ака "инстанс") түзөлү. Колдонмолор дүкөнүндө сиз көпчүлүк веб-сайттарды иштетүү үчүн зарыл болгон сервердик программалык камсыздоонун жыйындысы (LAMP = Linux, Apache, MySQL, PHP) болгон даяр LAMP стекин тандап, орнотушуңуз керек.

Кайрымдуулук үчүн булут: Миграция колдонмосу
Кайрымдуулук үчүн булут: Миграция колдонмосу
Кайрымдуулук үчүн булут: Миграция колдонмосу
Тиешелүү сервер конфигурациясын тандап, жаңы SSH ачкычын түзүңүз. "Орнотуу" баскычын баскандан кийин серверди жана LAMP стекин орнотуу башталат, бул бир аз убакытты талап кылат. Система ошондой эле виртуалдык машинаны консол аркылуу башкаруу үчүн компьютериңизге жеке ачкычты жүктөп алууну сунуштайт, аны сактап коюңуз.

Тиркемени орноткондон кийин дароо брандмауэрди орнотобуз, бул сиздин жеке аккаунтуңузда да жасалат: "Булуттагы эсептөө -> Виртуалдык машиналар" бөлүмүнө өтүп, "Брандмауэрди орнотуу" дегенди тандаңыз:

Кайрымдуулук үчүн булут: Миграция колдонмосу
Сиз порт 80 жана 9997 аркылуу кирген трафик үчүн уруксат кошуу керек. Бул келечекте SSL сертификаттарын орнотуу жана phpMyAdmin менен иштөө үчүн зарыл. Натыйжада, эрежелер жыйындысы төмөнкүдөй болушу керек:

Кайрымдуулук үчүн булут: Миграция колдонмосу
Эми сиз SSH протоколун колдонуп, буйрук сабы аркылуу сервериңизге туташа аласыз. Бул үчүн, компьютериңиздеги SSH баскычын жана сервериңиздин тышкы IP дарегин көрсөтүп, төмөнкү буйрукту териңиз (аны "Виртуалдык машиналар" бөлүмүнөн таба аласыз):

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

Серверге биринчи жолу туташып жатканда, ага бардык учурдагы жаңыртууларды орнотуп, кайра жүктөө сунушталат. Бул үчүн, төмөнкү буйруктарды аткарыңыз:

$ sudo apt-get update

Система жаңыртуулардын тизмесин алат, аларды ушул буйрукту колдонуп орнотуп, нускамаларды аткарыңыз:

$ sudo apt-get upgrade

Жаңыртууларды орноткондон кийин серверди өчүрүп күйгүзүңүз:

$ sudo reboot

2-кадам: Виртуалдык хостторду орнотуу

Көптөгөн коммерциялык эмес уюмдар бир эле учурда бир нече домендерди же субдомендерди (мисалы, негизги веб-сайтты жана жарнамалык кампаниялар үчүн бир нече десанттык баракчаларды ж.б.) кармап турушу керек. Мунун баарын бир нече виртуалдык хостторду түзүү менен бир серверге ыңгайлуу жайгаштырса болот.

Биринчиден, биз конокторго көрсөтүлө турган сайттар үчүн каталог түзүмүн түзүшүбүз керек. Кээ бир каталогдорду түзөлү:

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

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

Жана учурдагы колдонуучунун ээсин көрсөтүңүз:

$ 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

Variable $USER Сиз учурда кирип турган колдонуучунун атын камтыйт (демейки боюнча бул колдонуучу ubuntu). Эми учурдагы колдонуучу биз мазмунду сактай турган public_html каталогдоруна ээ.

Ошондой эле жалпы веб каталогго жана андагы бардык файлдар менен папкаларга окууга уруксат берилгенине ынануу үчүн уруксаттарды бир аз түзөтүшүбүз керек. Бул сайттын барактары туура көрсөтүлүшү үчүн зарыл:

$ sudo chmod -R 755 /var/www

Эми сиздин веб-сервериңизде мазмунду көрсөтүү үчүн зарыл болгон уруксаттар болушу керек. Мындан тышкары, сиздин колдонуучу азыр керектүү каталогдордо мазмунду түзө алат.

/var/www/html каталогунда мурунтан эле index.php файлы бар, келгиле аны жаңы каталогдорубузга көчүрөлү - бул азыр биздин мазмун болот:

$ 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

Эми сиз колдонуучу сиздин сайтка кире аларына ынанышыңыз керек. Бул үчүн, биз алгач Apache веб-сервери ар кандай домендерге суроо-талаптарга кандай жооп берерин аныктаган виртуалдык хост файлдарын конфигурациялайбыз.

Демейки боюнча, Apache 000-default.conf виртуалдык хост файлына ээ, аны биз баштапкы чекит катары колдоно алабыз. Ар бир доменибиз үчүн виртуалдык хост файлдарын түзүү үчүн муну көчүрөбүз. Биз бир доменден баштайбыз, аны конфигурациялайбыз, аны башка доменге көчүрөбүз, анан кайра керектүү түзөтүүлөрдү жасайбыз.

Ubuntu демейки конфигурациясы ар бир виртуалдык хост файлынын *.conf кеңейтүүсүн талап кылат.

Биринчи домен үчүн файлды көчүрүү менен баштайлы:

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

Түпкү укуктары бар редактордо жаңы файлды ачыңыз:

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

Дайындарды 80 портун көрсөтүү менен төмөнкүдөй түзөтүңүз ServerAdmin, ServerName, ServerAlias, ошондой эле сайтыңыздын түпкү каталогуна жол менен файлды сактаңыз (Ctrl+X, андан кийин 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 виртуалдык хосттун аталышына дал келиши керек болгон негизги доменди орнотот. Бул сиздин домен атыңыз болушу керек. Экинчи, ServerAlias, негизги домен сыяктуу чечмеленүүгө тийиш болгон башка аттарды аныктайт. Бул кошумча домендик аталыштарды колдонуу үчүн ыңгайлуу, мисалы, www.

Келгиле, бул конфигурацияны башка хостко көчүрөлү жана аны ошондой эле түзөтөлү:

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

Каалаганыңызча веб-сайттарыңыз үчүн көптөгөн каталогдорду жана виртуалдык хостторду түзө аласыз! Эми биз виртуалдык хост файлдарыбызды жараткандан кийин, аларды иштетишибиз керек. Биз a2ensite утилитасын төмөнкүдөй сайттарыбызды иштетүү үчүн колдоно алабыз:

$ sudo a2ensite a-dobra.ru.conf

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

Демейки боюнча, 80 порту LAMP ичинде жабык жана SSL сертификатын орнотуу үчүн ал кийинчерээк керек болот. Андыктан, келгиле, ports.conf файлын дароо оңдоп, анан Apache-ди кайра иштетели:

$ sudo nano /etc/apache2/ports.conf

Жаңы сап кошуп, файлды төмөнкүдөй кылып сактаңыз:

Listen 80
Listen 443
Listen 9997

Орнотууларды аяктагандан кийин, бардык өзгөртүүлөр күчүнө кириши үчүн Apacheди өчүрүп күйгүзүшүңүз керек:

$ sudo systemctl reload apache2

3-кадам: домендик аталыштарды орнотуу

Андан кийин, сиз жаңы сервериңизди көрсөткөн DNS жазууларын кошушуңуз керек. Домендерди башкаруу үчүн биздин Арифметика Жакшы Фондубуз dns-master.ru кызматын колдонот, биз аны мисал менен көрсөтөбүз.

Негизги домен үчүн A-жазууну орнотуу адатта төмөнкүдөй көрсөтүлөт (белги @):

Кайрымдуулук үчүн булут: Миграция колдонмосу
Субдомендер үчүн A жазуусу, адатта, төмөнкүдөй көрсөтүлөт:

Кайрымдуулук үчүн булут: Миграция колдонмосу
IP дареги биз жаңы эле түзгөн Linux серверинин дареги. Сиз TTL = 3600 көрсөтө аласыз.

Бир нече убакыт өткөндөн кийин, ал сиздин сайтка кирүүгө мүмкүн болот, бирок азыр гана аркылуу http://. Кийинки кадамда биз колдоону кошобуз https://.

4-кадам: Акысыз SSL сертификаттарын орнотуңуз

Сиз негизги сайтыңыз жана бардык субдомендериңиз үчүн Let's Encrypt SSL сертификаттарын акысыз ала аласыз. Сиз ошондой эле алардын автоматтык түрдө жаңылануусун конфигурациялай аласыз, бул абдан ыңгайлуу. SSL сертификаттарын алуу үчүн сервериңизге Certbotту орнотуңуз:

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

Apache үчүн Certbot пакетин орнотуу apt:

$ sudo apt install python-certbot-apache 

Эми Certbot колдонууга даяр, буйрукту иштетиңиз:

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

Бул буйрук certbot, ачкычтарды иштетет -d күбөлүк берилиши керек болгон домендердин аталыштарын аныктоо.

Эгер сиз certbotту биринчи жолу ишке киргизип жатсаңыз, сизден электрондук почта дарегиңизди киргизүү жана кызматты колдонуу шарттарына макулдук берүү суралат. certbot андан кийин Let's Encrypt сервери менен байланышат жана андан кийин сиз чындап сертификатты сураган доменди көзөмөлдөп жатканыңызды текшерет.

Эгер баары ойдогудай болсо, certbot сизден 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):

2-параметрди тандап, ENTER баскычын басууну сунуштайбыз. Конфигурация жаңыртылып, өзгөртүүлөрдү колдонуу үчүн Apache кайра иштетилет.

Сиздин сертификаттарыңыз азыр жүктөлүп, орнотулуп жана иштеп жатат. Сайтыңызды https:// менен кайра жүктөп көрүңүз, ошондо сиз браузериңизде коопсуздук белгисин көрөсүз. Эгер сиз сервериңизди сынасаңыз SSL Labs Server Test, ал А баасын алат.

Келгиле, Шифрлейли сертификаттары 90 күн гана жарактуу, бирок биз жаңы эле орноткон certbot пакети тастыктамаларды автоматтык түрдө жаңылайт. Жаңыртуу процессин сынап көрүү үчүн биз certbotту кургак иштетсек болот:

$ sudo certbot renew --dry-run 

Бул буйрукту иштетүүнүн натыйжасында эч кандай каталарды көрбөсөңүз, анда баары иштеп жатат!

5-кадам: MySQL жана phpMyAdmin кирүү

Көптөгөн веб-сайттар маалымат базаларын колдонушат. Маалыматтар базасын башкаруу үчүн phpMyAdmin куралы биздин серверде мурунтан эле орнотулган. Ага жетүү үчүн төмөнкү шилтеме аркылуу браузериңизге өтүңүз:

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

Тамырга кирүү үчүн сырсөздү MCS жеке аккаунтуңуздан алса болот (https://mcs.mail.ru/app/services/marketplace/apps/). Биринчи жолу киргениңизде түпкү сырсөзүңүздү өзгөртүүнү унутпаңыз!

6-кадам: SFTP аркылуу файлды жүктөө

Иштеп чыгуучуларга SFTP аркылуу веб-сайтыңызга файлдарды жүктөө ыңгайлуу болот. Бул үчүн, биз жаңы колдонуучуну түзөбүз, аны вебмастер деп атайбыз:

$ sudo adduser webmaster

Система сизден сырсөздү коюуну жана башка маалыматтарды киргизүүнү суранат.

Вебсайтыңыз менен каталогдун ээсин өзгөртүү:

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

Эми SSH конфигурациясын жаңы колдонуучу SSH терминалына эмес, SFTPге гана кире алгыдай кылып өзгөртөлү:

$ sudo nano /etc/ssh/sshd_config

Конфигурация файлынын эң аягына чейин жылдырып, төмөнкү блокту кошуңуз:

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

Файлды сактап, кызматты кайра иштетиңиз:

$ sudo systemctl restart sshd

Эми сиз серверге каалаган SFTP кардары аркылуу туташа аласыз, мисалы, FileZilla аркылуу.

жыйынтык

  1. Эми сиз жаңы каталогдорду кантип түзүүнү жана ошол эле сервердеги веб-сайттарыңыз үчүн виртуалдык хостторду конфигурациялоону билесиз.
  2. Сиз керектүү SSL сертификаттарын оңой түзө аласыз - бул бекер жана алар автоматтык түрдө жаңыртылып турат.
  3. Сиз MySQL маалымат базасы менен тааныш phpMyAdmin аркылуу ыңгайлуу иштей аласыз.
  4. Жаңы SFTP каттоо эсептерин түзүү жана кирүү укуктарын орнотуу көп күч-аракетти талап кылбайт. Мындай эсептер үчүнчү тараптын веб-иштеп чыгуучуларына жана сайттын администраторлоруна өткөрүлүп берилиши мүмкүн.
  5. Системаны мезгил-мезгили менен жаңыртып турууну унутпаңыз, ошондой эле камдык көчүрмөлөрдү жасоону сунуштайбыз - MCSде сиз бир чыкылдатуу менен бүт системанын "сүрөттөрүн" тартып, андан кийин, керек болсо, бүт сүрөттөрдү ишке киргизе аласыз.

Пайдалуу болушу мүмкүн болгон ресурстар:

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

Айтмакчы, бул жерде Биздин фонд MCS булутунун негизинде жетим балдар үчүн онлайн билим берүү платформасын кантип орноткондугун VC сайтынан окуй аласыз.

Source: www.habr.com

Комментарий кошуу