Cloud for Charities: Vodič za migraciju

Cloud for Charities: Vodič za migraciju

Nedavno su Mail.Ru Cloud Solutions (MCS) i usluga Dobro Mail.Ru pokrenuli projekt “Cloud za dobrotvorne svrhe”, zahvaljujući kojem neprofitne organizacije mogu besplatno dobiti resurse MCS cloud platforme. dobrotvorna zaklada"Aritmetika dobrote» sudjelovala u projektu i uspješno implementirala dio svoje infrastrukture temeljene na MCS-u.

Nakon što prođe provjeru valjanosti, NPO može dobiti virtualni kapacitet od MCS-a, ali daljnja konfiguracija zahtijeva određene kvalifikacije. U ovom materijalu želimo podijeliti konkretne upute za postavljanje poslužitelja temeljenog na Ubuntu Linuxu za pokretanje glavne temeljne web stranice i brojnih poddomena pomoću besplatnih SSL certifikata. Mnogima će ovo biti jednostavan vodič, no nadamo se da će naše iskustvo biti korisno i drugim neprofitnim organizacijama, a ne samo njima.

FYI: Što možete dobiti od MCS-a? 4 CPU-a, 32 GB RAM-a, 1 TB HDD, Ubuntu Linux OS, 500 GB prostora za pohranu objekata.

Korak 1: pokrenite virtualni poslužitelj

Prijeđimo odmah na stvar i stvorimo naš virtualni poslužitelj (poznat i kao "instanca") na vašem MCS osobnom računu. U trgovini aplikacija trebate odabrati i instalirati gotov LAMP stack, koji je skup poslužiteljskog softvera (LAMP = Linux, Apache, MySQL, PHP) neophodan za rad većine web stranica.

Cloud for Charities: Vodič za migraciju
Cloud for Charities: Vodič za migraciju
Cloud for Charities: Vodič za migraciju
Odaberite odgovarajuću konfiguraciju poslužitelja i izradite novi SSH ključ. Nakon klika na gumb "Instaliraj", započet će instalacija poslužitelja i LAMP stacka, što će potrajati neko vrijeme. Sustav će također ponuditi preuzimanje privatnog ključa na vaše računalo za upravljanje virtualnim strojem putem konzole, spremite ga.

Nakon instaliranja aplikacije, odmah postavimo vatrozid, to se također radi na vašem osobnom računu: idite na odjeljak "Računalstvo u oblaku -> Virtualni strojevi" i odaberite "Postavljanje vatrozida":

Cloud for Charities: Vodič za migraciju
Morate dodati dopuštenje za dolazni promet kroz port 80 i 9997. Ovo je u budućnosti neophodno za instaliranje SSL certifikata i za rad s phpMyAdminom. Kao rezultat, skup pravila trebao bi izgledati ovako:

Cloud for Charities: Vodič za migraciju
Sada se možete spojiti na svoj poslužitelj putem naredbenog retka koristeći SSH protokol. Da biste to učinili, upišite sljedeću naredbu, pokazujući na SSH ključ na vašem računalu i vanjsku IP adresu vašeg poslužitelja (možete je pronaći u odjeljku “Virtualni strojevi”):

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

Prilikom prvog spajanja na poslužitelj preporučuje se instalirati sva aktualna ažuriranja na njemu i ponovno ga pokrenuti. Da biste to učinili, pokrenite sljedeće naredbe:

$ sudo apt-get update

Sustav će primiti popis ažuriranja, instalirati ih pomoću ove naredbe i slijediti upute:

$ sudo apt-get upgrade

Nakon instaliranja ažuriranja ponovno pokrenite poslužitelj:

$ sudo reboot

Korak 2: Postavite virtualne hostove

Mnoge neprofitne organizacije moraju održavati nekoliko domena ili poddomena u isto vrijeme (na primjer, glavnu web stranicu i nekoliko odredišnih stranica za promotivne kampanje itd.). Sve se to može zgodno smjestiti na jedan poslužitelj stvaranjem nekoliko virtualnih hostova.

Prvo moramo stvoriti strukturu imenika za stranice koje će se prikazivati ​​posjetiteljima. Kreirajmo neke direktorije:

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

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

I navedite vlasnika trenutnog korisnika:

$ 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

Promjenjiva $USER sadrži korisničko ime pod kojim ste trenutno prijavljeni (prema zadanim postavkama ovo je korisnik ubuntu). Sada trenutni korisnik posjeduje public_html direktorije u koje ćemo pohraniti sadržaj.

Također moramo malo urediti dopuštenja kako bismo bili sigurni da je pristup za čitanje dopušten dijeljenom web imeniku i svim datotekama i mapama koje sadrži. Ovo je neophodno za ispravan prikaz stranica web stranice:

$ sudo chmod -R 755 /var/www

Vaš web poslužitelj sada bi trebao imati dopuštenja koja su mu potrebna za prikaz sadržaja. Osim toga, vaš korisnik sada ima mogućnost kreiranja sadržaja u potrebnim imenicima.

Već postoji datoteka index.php u direktoriju /var/www/html, kopirajmo ga u naše nove direktorije - ovo će za sada biti naš sadržaj:

$ 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

Sada morate biti sigurni da korisnik može pristupiti vašoj stranici. Da bismo to učinili, prvo ćemo konfigurirati datoteke virtualnog hosta, koje određuju kako će Apache web poslužitelj odgovoriti na zahtjeve različitim domenama.

Prema zadanim postavkama, Apache ima datoteku virtualnog hosta 000-default.conf koju možemo koristiti kao početnu točku. Kopirat ćemo ovo kako bismo stvorili datoteke virtualnog hosta za svaku od naših domena. Počet ćemo s jednom domenom, konfigurirati je, kopirati na drugu domenu, a zatim ponovno izvršiti potrebne izmjene.

Zadana konfiguracija Ubuntua zahtijeva da svaka datoteka virtualnog hosta ima ekstenziju *.conf.

Počnimo s kopiranjem datoteke za prvu domenu:

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

Otvorite novu datoteku u editoru s root pravima:

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

Uredite podatke na sljedeći način, navodeći port 80, za koji su vaši podaci ServerAdmin, ServerName, ServerAlias, kao i put do korijenskog direktorija vaše stranice, spremite datoteku (Ctrl+X, zatim 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 postavlja primarnu domenu, koja mora odgovarati nazivu virtualnog hosta. Ovo mora biti naziv vaše domene. Drugi, ServerAlias, definira druga imena koja bi se trebala tumačiti kao da se radi o primarnoj domeni. Ovo je zgodno za korištenje dodatnih naziva domena, na primjer korištenje www.

Kopirajmo ovu konfiguraciju za drugi host i uredimo je na isti način:

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

Možete stvoriti onoliko imenika i virtualnih hostova za svoje web stranice koliko želite! Sada kada smo izradili datoteke virtualnog hosta, moramo ih omogućiti. Možemo upotrijebiti uslužni program a2ensite kako bismo omogućili svaku od naših stranica ovako:

$ sudo a2ensite a-dobra.ru.conf

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

Prema zadanim postavkama, port 80 je zatvoren u LAMP-u i trebat će nam kasnije za instalaciju SSL certifikata. Dakle, idemo odmah urediti datoteku ports.conf i zatim ponovno pokrenuti Apache:

$ sudo nano /etc/apache2/ports.conf

Dodajte novi redak i spremite datoteku tako da izgleda ovako:

Listen 80
Listen 443
Listen 9997

Nakon dovršetka postavki potrebno je ponovno pokrenuti Apache kako bi sve promjene stupile na snagu:

$ sudo systemctl reload apache2

Korak 3: Postavite nazive domena

Zatim morate dodati DNS zapise koji će upućivati ​​na vaš novi poslužitelj. Za upravljanje domenama, naša Arithmetic of Good Foundation koristi uslugu dns-master.ru, pokazat ćemo to na primjeru.

Postavljanje A-zapisa za glavnu domenu obično je označeno na sljedeći način (znak @):

Cloud for Charities: Vodič za migraciju
Zapis A za poddomene obično se navodi ovako:

Cloud for Charities: Vodič za migraciju
IP adresa je adresa Linux poslužitelja koji smo upravo stvorili. Možete navesti TTL = 3600.

Nakon nekog vremena bit će moguće posjetiti vašu stranicu, ali za sada samo putem http://. U sljedećem koraku ćemo dodati podršku https://.

Korak 4: Postavite besplatne SSL certifikate

Možete dobiti besplatne Let's Encrypt SSL certifikate za svoju glavnu stranicu i sve poddomene. Također možete konfigurirati njihovu automatsku obnovu, što je vrlo zgodno. Za dobivanje SSL certifikata instalirajte Certbot na svoj poslužitelj:

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

Instalirajte paket Certbot za korištenje Apachea apt:

$ sudo apt install python-certbot-apache 

Sada je Certbot spreman za korištenje, pokrenite naredbu:

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

Ova naredba pokreće certbot, ključeve -d definirati nazive domena za koje treba izdati certifikat.

Ako je ovo prvi put da pokrećete certbot, od vas će se tražiti da unesete svoju adresu e-pošte i prihvatite uvjete korištenja usluge. certbot će zatim kontaktirati poslužitelj Let's Encrypt i potom potvrditi da vi stvarno kontrolirate domenu za koju ste zatražili certifikat.

Ako je sve prošlo dobro, certbot će vas pitati kako želite konfigurirati HTTPS konfiguraciju:

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):

Preporučujemo da odaberete opciju 2 i pritisnete ENTER. Konfiguracija će se ažurirati i Apache će se ponovno pokrenuti za primjenu promjena.

Vaši su certifikati sada preuzeti, instalirani i rade. Pokušajte ponovno učitati svoju stranicu s https:// i vidjet ćete ikonu sigurnosti u svom pregledniku. Ako testirate svoj poslužitelj Test poslužitelja SSL Labs, dobit će ocjenu A.

Let's Encrypt certifikati vrijede samo 90 dana, ali certbot paket koji smo upravo instalirali automatski će obnoviti certifikate. Kako bismo testirali proces ažuriranja, možemo napraviti suho pokretanje certbota:

$ sudo certbot renew --dry-run 

Ako ne vidite nikakve pogreške kao rezultat pokretanja ove naredbe, onda sve radi!

Korak 5: Pristupite MySQL i phpMyAdmin

Mnoge web stranice koriste baze podataka. Na našem poslužitelju već je instaliran phpMyAdmin alat za upravljanje bazom podataka. Da biste mu pristupili, idite na svoj preglednik koristeći vezu poput:

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

Lozinku za root pristup možete dobiti na svom MCS osobnom računu (https://mcs.mail.ru/app/services/marketplace/apps/). Ne zaboravite promijeniti svoju root lozinku kada se prvi put prijavite!

Korak 6: Postavite prijenos datoteke putem SFTP-a

Programerima će biti zgodno učitavanje datoteka za vaše web mjesto putem SFTP-a. Da bismo to učinili, stvorit ćemo novog korisnika, nazvati ga webmaster:

$ sudo adduser webmaster

Sustav će od vas tražiti da postavite lozinku i unesete neke druge podatke.

Promjena vlasnika imenika s vašom web stranicom:

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

Sada promijenimo SSH konfiguraciju tako da novi korisnik ima pristup samo SFTP-u, a ne SSH terminalu:

$ sudo nano /etc/ssh/sshd_config

Dođite do samog kraja konfiguracijske datoteke i dodajte sljedeći blok:

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

Spremite datoteku i ponovno pokrenite uslugu:

$ sudo systemctl restart sshd

Sada se možete povezati s poslužiteljem putem bilo kojeg SFTP klijenta, na primjer, putem FileZilla.

Ukupan

  1. Sada znate kako stvoriti nove direktorije i konfigurirati virtualne hostove za svoje web stranice unutar istog poslužitelja.
  2. Jednostavno možete izraditi potrebne SSL certifikate - besplatno je i automatski će se ažurirati.
  3. Možete jednostavno raditi s MySQL bazom podataka kroz poznati phpMyAdmin.
  4. Stvaranje novih SFTP računa i postavljanje prava pristupa ne zahtijeva puno truda. Takvi se računi mogu prenijeti na web programere i administratore web stranica trećih strana.
  5. Ne zaboravite povremeno ažurirati sustav, a preporučamo i izradu sigurnosnih kopija - u MCS-u jednim klikom možete napraviti "snimke" cijelog sustava, a zatim po potrebi pokrenuti cijele slike.

Korišteni resursi koji mogu biti korisni:

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

Usput, ovdje Možete pročitati na VC-u kako je naša zaklada postavila platformu za online obrazovanje za siročad temeljenu na MCS oblaku.

Izvor: www.habr.com

Dodajte komentar