Қайырымдылыққа арналған бұлт: көші-қон нұсқаулығы

Қайырымдылыққа арналған бұлт: көші-қон нұсқаулығы

Жақында Mail.Ru Cloud Solutions (MCS) және Dobro Mail.Ru қызметі « жобасын іске қосты.Қайырымдылыққа арналған бұлт», соның арқасында коммерциялық емес ұйымдар MCS бұлттық платформасының ресурстарын тегін ала алады. Қайырымдылық қоры »Жақсылық арифметикасы» жобаға қатысып, MCS негізіндегі инфрақұрылымының бір бөлігін сәтті орналастырды.

Тексеруден өткеннен кейін NPO MCS-тен виртуалды мүмкіндікті ала алады, бірақ одан әрі конфигурациялау белгілі бір біліктілікті қажет етеді. Бұл материалда біз тегін SSL сертификаттарын қолданатын негізгі веб-сайтты және бірқатар қосалқы домендерді іске қосу үшін Ubuntu Linux негізіндегі серверді орнату бойынша нақты нұсқаулармен бөліскіміз келеді. Көптеген адамдар үшін бұл қарапайым нұсқаулық болады, бірақ біздің тәжірибеміз тек қана емес, басқа коммерциялық емес ұйымдар үшін де пайдалы болады деп үміттенеміз.

FYI: MCS-тен не ала аласыз? 4 процессор, 32 ГБ жедел жады, 1 ТБ HDD, Ubuntu Linux ОЖ, 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

Айнымалысы $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 сервер сынағы, ол А бағасын алады.

Let's Encrypt сертификаттары тек 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

Айтпақшы, осында VC сайтында біздің қордың MCS бұлтына негізделген жетім балаларға арналған онлайн білім беру платформасын қалай орнатқанын оқи аласыз.

Ақпарат көзі: www.habr.com

пікір қалдыру