Cloud for Charities: Průvodce migrací

Cloud for Charities: Průvodce migrací

Není to tak dávno, co Mail.Ru Cloud Solutions (MCS) a služba Dobro Mail.Ru spustily projekt “Cloud pro charitu“, díky kterému mohou neziskové organizace získat prostředky cloudové platformy MCS zdarma. Charitativní nadace"Aritmetika dobra» se do projektu zapojila a úspěšně nasadila část své infrastruktury založené na MCS.

Po absolvování ověření může NPO přijímat virtuální kapacitu z MCS, ale další konfigurace vyžaduje určité kvalifikace. V tomto materiálu se chceme podělit o konkrétní pokyny pro nastavení serveru založeného na Ubuntu Linux pro provozování hlavního webu nadace a řady subdomén pomocí bezplatných certifikátů SSL. Pro mnohé to bude jednoduchý návod, ale doufáme, že naše zkušenosti budou užitečné i pro další neziskové organizace, a nejen to.

FYI: Co můžete získat od MCS? 4 CPU, 32 GB RAM, 1 TB HDD, OS Ubuntu Linux, 500 GB objektového úložiště.

Krok 1: Spusťte virtuální server

Pojďme rovnou k věci a vytvořte si náš virtuální server (neboli „instanci“) ve vašem osobním účtu MCS. V obchodě s aplikacemi je třeba vybrat a nainstalovat hotový zásobník LAMP, což je sada serverového softwaru (LAMP = Linux, Apache, MySQL, PHP) nezbytná pro provoz většiny webových stránek.

Cloud for Charities: Průvodce migrací
Cloud for Charities: Průvodce migrací
Cloud for Charities: Průvodce migrací
Vyberte příslušnou konfiguraci serveru a vytvořte nový klíč SSH. Po kliknutí na tlačítko „Instalovat“ se spustí instalace serveru a zásobníku LAMP, což nějakou dobu potrvá. Systém také nabídne stažení soukromého klíče do počítače pro správu virtuálního stroje přes konzoli, jeho uložení.

Po instalaci aplikace okamžitě nastavte firewall, to se provádí také ve vašem osobním účtu: přejděte do části „Cloud computing -> Virtuální počítače“ a vyberte „Nastavení brány firewall“:

Cloud for Charities: Průvodce migrací
Musíte přidat oprávnění pro příchozí provoz přes port 80 a 9997. To je v budoucnu nezbytné pro instalaci SSL certifikátů a pro práci s phpMyAdminem. V důsledku toho by sada pravidel měla vypadat takto:

Cloud for Charities: Průvodce migrací
Nyní se můžete připojit k serveru přes příkazový řádek pomocí protokolu SSH. Chcete-li to provést, zadejte následující příkaz, ukažte na klíč SSH na vašem počítači a externí IP adresu vašeho serveru (najdete ji v sekci „Virtuální počítače“):

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

Při prvním připojení k serveru se doporučuje nainstalovat na něj všechny aktuální aktualizace a restartovat jej. Chcete-li to provést, spusťte následující příkazy:

$ sudo apt-get update

Systém obdrží seznam aktualizací, nainstaluje je pomocí tohoto příkazu a postupujte podle pokynů:

$ sudo apt-get upgrade

Po instalaci aktualizací restartujte server:

$ sudo reboot

Krok 2: Nastavte virtuální hostitele

Mnoho neziskových organizací potřebuje udržovat několik domén nebo subdomén současně (například hlavní web a několik vstupních stránek pro propagační kampaně atd.). To vše lze pohodlně umístit na jeden server vytvořením několika virtuálních hostitelů.

Nejprve musíme vytvořit adresářovou strukturu pro stránky, které se budou zobrazovat návštěvníkům. Vytvoříme několik adresářů:

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

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

A zadejte vlastníka aktuálního uživatele:

$ 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

Proměnná $USER obsahuje uživatelské jméno, pod kterým jste aktuálně přihlášeni (ve výchozím nastavení je to uživatel ubuntu). Nyní aktuální uživatel vlastní adresáře public_html, kam budeme obsah ukládat.

Musíme také trochu upravit oprávnění, abychom se ujistili, že je povolen přístup pro čtení ke sdílenému webovému adresáři a všem souborům a složkám, které obsahuje. To je nezbytné pro správné zobrazení stránek webu:

$ sudo chmod -R 755 /var/www

Váš webový server by nyní měl mít oprávnění, která potřebuje k zobrazení obsahu. Kromě toho má váš uživatel nyní možnost vytvářet obsah v požadovaných adresářích.

V adresáři /var/www/html již je soubor index.php, zkopírujeme ho do našich nových adresářů - toto bude prozatím náš obsah:

$ 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

Nyní se musíte ujistit, že uživatel má přístup k vašemu webu. Za tímto účelem nejprve nakonfigurujeme soubory virtuálního hostitele, které určují, jak bude webový server Apache reagovat na požadavky do různých domén.

Ve výchozím nastavení má Apache soubor virtuálního hostitele 000-default.conf, který můžeme použít jako výchozí bod. Zkopírujeme to, abychom vytvořili soubory virtuálního hostitele pro každou z našich domén. Začneme s jednou doménou, nakonfigurujeme ji, zkopírujeme do jiné domény a poté znovu provedeme potřebné úpravy.

Výchozí konfigurace Ubuntu vyžaduje, aby každý soubor virtuálního hostitele měl příponu *.conf.

Začněme zkopírováním souboru pro první doménu:

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

Otevřete nový soubor v editoru s právy root:

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

Upravte data následovně, s uvedením portu 80, pro který jsou vaše data ServerAdmin, ServerName, ServerAlias, stejně jako cestu ke kořenovému adresáři vašeho webu, uložte soubor (Ctrl+X, poté 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 nastavuje primární doménu, která se musí shodovat s názvem virtuálního hostitele. Toto musí být název vaší domény. Druhý, ServerAlias, definuje další názvy, které by měly být interpretovány, jako by šlo o primární doménu. To je vhodné pro použití dalších doménových jmen, například pomocí www.

Zkopírujeme tuto konfiguraci pro jiného hostitele a také ji upravíme stejným způsobem:

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

Pro své webové stránky můžete vytvořit tolik adresářů a virtuálních hostitelů, kolik chcete! Nyní, když jsme vytvořili naše soubory virtuálního hostitele, musíme je povolit. Můžeme použít nástroj a2ensite, abychom povolili každou z našich stránek, jako je tato:

$ sudo a2ensite a-dobra.ru.conf

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

Ve výchozím nastavení je port 80 v LAMP uzavřen a později jej budeme potřebovat k instalaci SSL certifikátu. Okamžitě tedy upravíme soubor ports.conf a poté restartujeme Apache:

$ sudo nano /etc/apache2/ports.conf

Přidejte nový řádek a uložte soubor tak, aby vypadal takto:

Listen 80
Listen 443
Listen 9997

Po dokončení nastavení je třeba restartovat Apache, aby se všechny změny projevily:

$ sudo systemctl reload apache2

Krok 3: Nastavte názvy domén

Dále musíte přidat záznamy DNS, které budou ukazovat na váš nový server. Ke správě domén používá naše nadace Aritmetika dobra službu dns-master.ru, ukážeme si to na příkladu.

Nastavení A-záznamu pro hlavní doménu je obvykle označeno následovně (sign @):

Cloud for Charities: Průvodce migrací
Záznam A pro subdomény je obvykle specifikován takto:

Cloud for Charities: Průvodce migrací
IP adresa je adresa linuxového serveru, který jsme právě vytvořili. Můžete zadat TTL = 3600.

Po nějaké době bude možné vaše stránky navštívit, ale zatím pouze prostřednictvím http://. V dalším kroku přidáme podporu https://.

Krok 4: Nastavte bezplatné certifikáty SSL

Můžete získat zdarma Let's Encrypt SSL certifikáty pro váš hlavní web a všechny subdomény. Můžete si také nakonfigurovat jejich automatickou obnovu, což je velmi pohodlné. Chcete-li získat certifikáty SSL, nainstalujte Certbot na svůj server:

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

Nainstalujte balíček Certbot pro Apache pomocí apt:

$ sudo apt install python-certbot-apache 

Nyní je Certbot připraven k použití, spusťte příkaz:

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

Tento příkaz spustí certbot, keys -d definovat názvy domén, pro které má být certifikát vydán.

Pokud je to poprvé, co spouštíte certbota, budete požádáni o zadání své e-mailové adresy a souhlas s podmínkami používání služby. certbot se poté spojí se serverem Let's Encrypt a ověří, že skutečně ovládáte doménu, pro kterou jste certifikát požadovali.

Pokud vše proběhlo v pořádku, certbot se zeptá, jak chcete nakonfigurovat konfiguraci 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):

Doporučujeme vybrat možnost 2 a stisknout ENTER. Konfigurace bude aktualizována a Apache se restartuje, aby se změny uplatnily.

Vaše certifikáty jsou nyní staženy, nainstalovány a fungují. Zkuste znovu načíst svůj web pomocí https:// a ve vašem prohlížeči se zobrazí ikona zabezpečení. Pokud otestujete svůj server Test serveru SSL Labs, získá známku A.

Certifikáty Let's Encrypt jsou platné pouze 90 dní, ale právě nainstalovaný balíček certbot certifikáty automaticky obnoví. Chcete-li otestovat proces aktualizace, můžeme provést suchý běh certbota:

$ sudo certbot renew --dry-run 

Pokud v důsledku spuštění tohoto příkazu nevidíte žádné chyby, pak vše funguje!

Krok 5: Přístup k MySQL a phpMyAdmin

Mnoho webových stránek používá databáze. Nástroj phpMyAdmin pro správu databází je již na našem serveru nainstalován. Chcete-li se k němu dostat, přejděte do prohlížeče pomocí odkazu jako:

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

Heslo pro přístup root lze získat ve svém osobním účtu MCS (https://mcs.mail.ru/app/services/marketplace/apps/). Nezapomeňte si při prvním přihlášení změnit své root heslo!

Krok 6: Nastavte nahrávání souboru přes SFTP

Pro vývojáře bude pohodlné nahrávat soubory pro váš web přes SFTP. Za tímto účelem vytvoříme nového uživatele, kterému budeme říkat webmaster:

$ sudo adduser webmaster

Systém vás požádá o nastavení hesla a zadání dalších údajů.

Změna vlastníka adresáře s vaším webem:

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

Nyní změňme konfiguraci SSH tak, aby nový uživatel měl přístup pouze k SFTP a ne k terminálu SSH:

$ sudo nano /etc/ssh/sshd_config

Přejděte na úplný konec konfiguračního souboru a přidejte následující blok:

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

Uložte soubor a restartujte službu:

$ sudo systemctl restart sshd

Nyní se můžete připojit k serveru prostřednictvím libovolného klienta SFTP, například prostřednictvím FileZilla.

Celkový

  1. Nyní víte, jak vytvářet nové adresáře a konfigurovat virtuální hostitele pro vaše webové stránky na stejném serveru.
  2. Potřebné SSL certifikáty si můžete snadno vytvořit – je to zdarma a budou se automaticky aktualizovat.
  3. S databází MySQL můžete pohodlně pracovat prostřednictvím známého phpMyAdmin.
  4. Vytváření nových účtů SFTP a nastavení přístupových práv nevyžaduje velké úsilí. Takové účty lze převést na webové vývojáře a správce stránek třetích stran.
  5. Nezapomeňte pravidelně aktualizovat systém a také doporučujeme zálohovat - v MCS můžete jedním kliknutím pořídit „snímky“ celého systému a v případě potřeby pak spustit celé obrázky.

Použité zdroje, které mohou být užitečné:

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

Mimochodem, zde Na VC si můžete přečíst, jak naše nadace nasadila platformu pro online vzdělávání pro sirotky založenou na cloudu MCS.

Zdroj: www.habr.com

Přidat komentář