Облак за добротворни цели: Водич за миграција

Облак за добротворни цели: Водич за миграција

Не така одамна, Mail.Ru Cloud Solutions (MCS) и услугата Dobro Mail.Ru го започнаа проектот “Облак за добротворни цели“, благодарение на што непрофитните организации можат бесплатно да ги добијат ресурсите на платформата за облак MCS. Добротворна фондација“Аритметика на добрината» учествуваше во проектот и успешно распореди дел од својата инфраструктура базирана на MCS.

Откако ќе помине валидација, НПО може да добие виртуелен капацитет од MCS, но понатамошната конфигурација бара одредени квалификации. Во овој материјал, сакаме да споделиме конкретни инструкции за поставување сервер базиран на Ubuntu Linux за да ја води главната веб-страница на основата и голем број поддомени кои користат бесплатни SSL сертификати. За многумина ова ќе биде едноставен водич, но се надеваме дека нашето искуство ќе биде корисно и за други непрофитни организации, а не само.

Материјал цел: Што можете да добиете од MCS? 4 процесори, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB складирање на објекти.

Чекор 1: стартувајте го виртуелниот сервер

Ајде да преминеме директно на поентата и да го создадеме нашиот виртуелен сервер (познат како „пример“) во вашата лична сметка на MCS. Во продавницата за апликации, треба да изберете и инсталирате готов стек LAMP, кој е збир на серверски софтвер (LAMP = Linux, Apache, MySQL, PHP) неопходен за извршување на повеќето веб-локации.

Облак за добротворни цели: Водич за миграција
Облак за добротворни цели: Водич за миграција
Облак за добротворни цели: Водич за миграција
Изберете ја соодветната конфигурација на серверот и креирајте нов SSH клуч. Откако ќе кликнете на копчето „Инсталирај“, ќе започне инсталацијата на серверот и стекот LAMP, ова ќе потрае некое време. Системот исто така ќе понуди да преземете приватен клуч на вашиот компјутер за да управувате со виртуелната машина преку конзолата, зачувајте го.

По инсталирањето на апликацијата, веднаш да го поставиме заштитниот ѕид, тоа се прави и во вашата лична сметка: одете во делот „Cloud computing -> Virtual Machines“ и изберете „Поставување на заштитен ѕид“:

Облак за добротворни цели: Водич за миграција
Треба да додадете дозвола за дојдовен сообраќај преку портите 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

Вашиот веб-сервер сега треба да ги има потребните дозволи за прикажување на содржината. Покрај тоа, вашиот корисник сега има можност да креира содржина во потребните директориуми.

Веќе има датотека index.php во директориумот /var/www/html, ајде да ја копираме во нашите нови директориуми - ова ќе биде нашата содржина засега:

$ 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

Отворете нова датотека во уредувач со права на root:

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

Уредете ги податоците на следниов начин, наведувајќи ја портата 80, вашите податоци за ServerAdmin, ServerName, ServerAlias, како и патеката до root директориумот на вашата страница, зачувајте ја датотеката (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 за поддомени обично се одредува вака:

Облак за добротворни цели: Водич за миграција
IP адресата е адресата на серверот Linux што штотуку го создадовме. Можете да наведете TTL = 3600.

По некое време, ќе биде можно да ја посетите вашата страница, но засега само преку http://. Во следниот чекор ќе додадеме поддршка https://.

Чекор 4: Поставете бесплатни SSL сертификати

Може да добиете бесплатни Let's Encrypt SSL сертификати за вашиот главен сајт и сите поддомени. Можете исто така да го конфигурирате нивното автоматско обновување, што е многу погодно. За да добиете SSL сертификати, инсталирајте Certbot на вашиот сервер:

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

Инсталирајте го пакетот Certbot за Apache користејќи 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, ќе добие оценка А.

Ајде да шифрираме сертификатите важат само 90 дена, но пакетот certbot што штотуку го инсталиравме ќе ги обнови сертификатите автоматски. За да го тестираме процесот на ажурирање, можеме да направиме суво извршување на certbot:

$ sudo certbot renew --dry-run 

Ако не видите никакви грешки како резултат на извршување на оваа команда, тогаш сè работи!

Чекор 5: Пристапете до MySQL и phpMyAdmin

Многу веб-локации користат бази на податоци. Алатката phpMyAdmin за управување со базата на податоци е веќе инсталирана на нашиот сервер. За да пристапите до него, одете на вашиот прелистувач користејќи врска како:

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

Лозинката за root пристап може да се добие во вашата лична сметка MCS (https://mcs.mail.ru/app/services/marketplace/apps/). Не заборавајте да ја смените лозинката за root првиот пат кога ќе се најавите!

Чекор 6: Поставете поставување на датотека преку SFTP

Програмерите ќе сметаат дека е погодно да поставуваат датотеки за вашата веб-страница преку SFTP. За да го направите ова, ќе создадеме нов корисник, наречете го вебмастер:

$ sudo adduser webmaster

Системот ќе побара од вас да поставите лозинка и да внесете некои други податоци.

Промена на сопственикот на директориумот со вашата веб-локација:

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

Сега ајде да ја смениме конфигурацијата на SSH така што новиот корисник има пристап само до SFTP, а не до терминалот SSH:

$ 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

Додадете коментар