Není to tak dávno, co Mail.Ru Cloud Solutions (MCS) a služba Dobro Mail.Ru spustily projekt “
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.
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“:
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:
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 @
):
Záznam A pro subdomény je obvykle specifikován takto:
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
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 (
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ý
- Nyní víte, jak vytvářet nové adresáře a konfigurovat virtuální hostitele pro vaše webové stránky na stejném serveru.
- Potřebné SSL certifikáty si můžete snadno vytvořit – je to zdarma a budou se automaticky aktualizovat.
- S databází MySQL můžete pohodlně pracovat prostřednictvím známého phpMyAdmin.
- 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.
- 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é:
Mimochodem,
Zdroj: www.habr.com