Cloud for Charities: Vodnik po migraciji

Cloud for Charities: Vodnik po migraciji

Pred kratkim sta Mail.Ru Cloud Solutions (MCS) in storitev Dobro Mail.Ru lansirala projekt “Oblak za dobrodelne namene”, zahvaljujoč kateremu lahko neprofitne organizacije brezplačno pridobijo vire oblačne platforme MCS. Dobrodelna fundacija "Aritmetika dobrote» sodelovalo pri projektu in uspešno postavilo del svoje infrastrukture na osnovi MCS.

Po opravljeni validaciji lahko NPO prejme virtualno zmogljivost od MCS, vendar nadaljnja konfiguracija zahteva določene kvalifikacije. V tem gradivu želimo deliti posebna navodila za nastavitev strežnika, ki temelji na Ubuntu Linuxu, za izvajanje glavnega temeljnega spletnega mesta in številnih poddomen z uporabo brezplačnih potrdil SSL. Za mnoge bo to preprost vodnik, vendar upamo, da bodo naše izkušnje koristne tudi drugim neprofitnim organizacijam in ne samo.

FYI: Kaj lahko dobite od MCS? 4 procesorji, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB prostora za shranjevanje objektov.

1. korak: zaženite virtualni strežnik

Pojdimo naravnost k bistvu in ustvarimo naš virtualni strežnik (tudi »primerek«) v vašem osebnem računu MCS. V trgovini z aplikacijami morate izbrati in namestiti že pripravljen sklad LAMP, ki je nabor strežniške programske opreme (LAMP = Linux, Apache, MySQL, PHP), potrebne za delovanje večine spletnih mest.

Cloud for Charities: Vodnik po migraciji
Cloud for Charities: Vodnik po migraciji
Cloud for Charities: Vodnik po migraciji
Izberite ustrezno konfiguracijo strežnika in ustvarite nov ključ SSH. Po kliku na gumb »Namesti« se bo začela namestitev strežnika in sklada LAMP, kar bo trajalo nekaj časa. Sistem bo ponudil tudi prenos zasebnega ključa v vaš računalnik za upravljanje virtualnega stroja prek konzole, shranite ga.

Po namestitvi aplikacije takoj nastavimo požarni zid, to se naredi tudi v vašem osebnem računu: pojdite v razdelek »Računalništvo v oblaku -> Virtualni stroji« in izberite »Nastavitev požarnega zidu«:

Cloud for Charities: Vodnik po migraciji
Dodati morate dovoljenje za dohodni promet prek vrat 80 in 9997. To bo v prihodnosti potrebno za namestitev SSL certifikatov in za delo s phpMyAdmin. Posledično bi moral niz pravil izgledati takole:

Cloud for Charities: Vodnik po migraciji
Zdaj se lahko povežete s svojim strežnikom prek ukazne vrstice s protokolom SSH. Če želite to narediti, vnesite naslednji ukaz, ki kaže na ključ SSH na vašem računalniku in zunanji naslov IP vašega strežnika (najdete ga v razdelku »Virtualni stroji«):

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

Pri prvi povezavi s strežnikom je priporočljivo, da nanj namestite vse trenutne posodobitve in ga znova zaženete. Če želite to narediti, zaženite naslednje ukaze:

$ sudo apt-get update

Sistem bo prejel seznam posodobitev, jih namestil s tem ukazom in sledil navodilom:

$ sudo apt-get upgrade

Po namestitvi posodobitev znova zaženite strežnik:

$ sudo reboot

2. korak: Nastavite virtualne gostitelje

Številne neprofitne organizacije morajo vzdrževati več domen ali poddomen hkrati (na primer glavno spletno mesto in več ciljnih strani za promocijske akcije itd.). Vse to lahko priročno postavite na en strežnik z ustvarjanjem več virtualnih gostiteljev.

Najprej moramo ustvariti strukturo imenikov za spletna mesta, ki bodo prikazana obiskovalcem. Ustvarimo nekaj imenikov:

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

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

In določite lastnika trenutnega uporabnika:

$ 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

Spremenljivka $USER vsebuje uporabniško ime, pod katerim ste trenutno prijavljeni (privzeto je to uporabnik ubuntu). Zdaj ima trenutni uporabnik imenike public_html, kamor bomo shranili vsebino.

Prav tako moramo nekoliko urediti dovoljenja, da zagotovimo dostop za branje do skupnega spletnega imenika in vseh datotek in map, ki jih vsebuje. To je potrebno za pravilen prikaz strani spletnega mesta:

$ sudo chmod -R 755 /var/www

Vaš spletni strežnik bi zdaj moral imeti dovoljenja, ki jih potrebuje za prikaz vsebine. Poleg tega ima vaš uporabnik zdaj možnost ustvarjanja vsebine v zahtevanih imenikih.

V imeniku /var/www/html že obstaja datoteka index.php, kopirajmo jo v naše nove imenike - to bo za zdaj naša vsebina:

$ 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

Zdaj morate zagotoviti, da lahko uporabnik dostopa do vašega spletnega mesta. Da bi to naredili, bomo najprej konfigurirali datoteke virtualnega gostitelja, ki določajo, kako se bo spletni strežnik Apache odzival na zahteve različnih domen.

Apache ima privzeto datoteko virtualnega gostitelja 000-default.conf, ki jo lahko uporabimo kot izhodišče. To bomo kopirali, da bomo ustvarili datoteke navideznega gostitelja za vsako od naših domen. Začeli bomo z eno domeno, jo konfigurirali, kopirali v drugo domeno in nato znova izvedli potrebna urejanja.

Privzeta konfiguracija Ubuntuja zahteva, da ima vsaka datoteka navideznega gostitelja pripono *.conf.

Začnimo s kopiranjem datoteke za prvo domeno:

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

Odprite novo datoteko v urejevalniku s korenskimi pravicami:

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

Uredite podatke na naslednji način in navedite vrata 80, za katere so vaši podatki ServerAdmin, ServerName, ServerAlias, kot tudi pot do korenskega imenika vašega spletnega mesta, shranite datoteko (Ctrl+X, nato 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 nastavi primarno domeno, ki se mora ujemati z imenom virtualnega gostitelja. To mora biti ime vaše domene. Drugič, ServerAlias, definira druga imena, ki jih je treba razlagati, kot da gre za primarno domeno. To je priročno za uporabo dodatnih imen domen, na primer z uporabo www.

Kopirajmo to konfiguracijo za drugega gostitelja in jo uredimo na enak način:

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

Ustvarite lahko poljubno število imenikov in virtualnih gostiteljev za svoja spletna mesta! Zdaj, ko smo ustvarili datoteke virtualnega gostitelja, jih moramo omogočiti. Uporabimo lahko pripomoček a2ensite, da omogočimo vsako od naših spletnih mest takole:

$ sudo a2ensite a-dobra.ru.conf

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

Privzeto so vrata 80 zaprta v LAMP in jih bomo potrebovali pozneje za namestitev potrdila SSL. Zato takoj uredimo datoteko ports.conf in nato znova zaženimo Apache:

$ sudo nano /etc/apache2/ports.conf

Dodajte novo vrstico in shranite datoteko, da bo videti takole:

Listen 80
Listen 443
Listen 9997

Ko končate nastavitve, morate znova zagnati Apache, da bodo vse spremembe začele veljati:

$ sudo systemctl reload apache2

3. korak: Nastavite imena domen

Nato morate dodati zapise DNS, ki bodo kazali na vaš novi strežnik. Za upravljanje domen naša Arithmetic of Good Foundation uporablja storitev dns-master.ru, to bomo pokazali na primeru.

Nastavitev A-zapisa za glavno domeno je običajno označena na naslednji način (znak @):

Cloud for Charities: Vodnik po migraciji
Zapis A za poddomene je običajno določen takole:

Cloud for Charities: Vodnik po migraciji
Naslov IP je naslov strežnika Linux, ki smo ga pravkar ustvarili. Določite lahko TTL = 3600.

Čez nekaj časa bo mogoče obiskati vašo spletno stran, vendar zaenkrat samo prek http://. V naslednjem koraku bomo dodali podporo https://.

4. korak: Nastavite brezplačna potrdila SSL

Za svoje glavno spletno mesto in vse poddomene lahko dobite brezplačna potrdila Let's Encrypt SSL. Konfigurirate lahko tudi njihovo samodejno obnovo, kar je zelo priročno. Za pridobitev SSL certifikatov namestite Certbot na svoj strežnik:

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

Namestite paket Certbot za Apache z uporabo apt:

$ sudo apt install python-certbot-apache 

Zdaj je Certbot pripravljen za uporabo, zaženite ukaz:

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

Ta ukaz zažene certbot, ključe -d določite imena domen, za katere naj se izda certifikat.

Če boste prvič zagnali certbot, boste morali vnesti svoj e-poštni naslov in se strinjati s pogoji uporabe storitve. certbot bo nato stopil v stik s strežnikom Let's Encrypt in nato preveril, ali dejansko nadzorujete domeno, za katero ste zahtevali potrdilo.

Če je šlo vse v redu, bo certbot vprašal, kako želite konfigurirati konfiguracijo 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):

Priporočamo, da izberete možnost 2 in pritisnete ENTER. Konfiguracija bo posodobljena in Apache bo znova zagnan, da bo uveljavil spremembe.

Vaša potrdila so zdaj prenesena, nameščena in delujejo. Poskusite znova naložiti svoje spletno mesto s https:// in v brskalniku boste videli varnostno ikono. Če preizkusite svoj strežnik Test strežnika SSL Labs, bo prejel oceno A.

Potrdila Let's Encrypt so veljavna samo 90 dni, vendar bo paket certbot, ki smo ga pravkar namestili, samodejno obnovil potrdila. Za preizkus postopka posodobitve lahko izvedemo suhi zagon certbota:

$ sudo certbot renew --dry-run 

Če zaradi izvajanja tega ukaza ne vidite nobenih napak, potem vse deluje!

5. korak: Dostop do MySQL in phpMyAdmin

Številna spletna mesta uporabljajo baze podatkov. Orodje phpMyAdmin za upravljanje baze podatkov je že nameščeno na našem strežniku. Za dostop do njega pojdite v brskalnik s povezavo, kot je:

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

Geslo za korenski dostop lahko pridobite v osebnem računu MCS (https://mcs.mail.ru/app/services/marketplace/apps/). Ne pozabite spremeniti korenskega gesla ob prvi prijavi!

6. korak: Nastavite nalaganje datotek prek SFTP

Razvijalcem bo priročno nalaganje datotek za vaše spletno mesto prek SFTP. Da bi to naredili, bomo ustvarili novega uporabnika, ki ga imenujemo spletni skrbnik:

$ sudo adduser webmaster

Sistem vas bo prosil za nastavitev gesla in vnos nekaterih drugih podatkov.

Zamenjava lastnika imenika z vašim spletnim mestom:

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

Zdaj pa spremenimo konfiguracijo SSH, tako da bo imel novi uporabnik dostop samo do SFTP in ne do terminala SSH:

$ sudo nano /etc/ssh/sshd_config

Pomaknite se do samega konca konfiguracijske datoteke in dodajte naslednji blok:

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

Shranite datoteko in znova zaženite storitev:

$ sudo systemctl restart sshd

Zdaj se lahko na strežnik povežete prek katerega koli odjemalca SFTP, na primer prek FileZilla.

Skupaj

  1. Zdaj veste, kako ustvariti nove imenike in konfigurirati virtualne gostitelje za svoja spletna mesta znotraj istega strežnika.
  2. Enostavno lahko ustvarite potrebne SSL certifikate – to je brezplačno in se bodo samodejno posodabljali.
  3. Z bazo podatkov MySQL lahko udobno delate prek znanega phpMyAdmin.
  4. Ustvarjanje novih računov SFTP in nastavitev pravic dostopa ne zahteva veliko truda. Takšne račune je mogoče prenesti na druge spletne razvijalce in skrbnike spletnih mest.
  5. Ne pozabite občasno posodobiti sistema, priporočamo pa tudi izdelavo varnostnih kopij - v MCS lahko z enim klikom posnamete "posnetke" celotnega sistema in nato po potrebi zaženete celotne slike.

Uporabljeni viri, ki bi lahko bili koristni:

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

Mimogrede, tukaj Na VC lahko preberete, kako je naša fundacija postavila platformo za spletno izobraževanje za sirote, ki temelji na oblaku MCS.

Vir: www.habr.com

Dodaj komentar