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 projekat “Oblak za dobrotvorne svrhe“, zahvaljujući kojoj neprofitne organizacije mogu besplatno dobiti resurse MCS cloud platforme. dobrotvorna fondacija"Aritmetika dobrote» učestvovao u projektu i uspješno razvio dio svoje infrastrukture bazirane na MCS-u.

Nakon prolaska validacije, NPO može dobiti virtuelni kapacitet od MCS-a, ali dalja konfiguracija zahtijeva određene kvalifikacije. U ovom materijalu želimo podijeliti konkretne upute za postavljanje servera baziranog na Ubuntu Linuxu za pokretanje glavne web stranice fondacije i niza poddomena koji koriste besplatne SSL certifikate. Za mnoge će ovo biti jednostavan vodič, ali nadamo se da će naše iskustvo biti korisno i za druge neprofitne organizacije, i ne samo.

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

Korak 1: pokrenite virtuelni server

Pređimo direktno na stvar i kreiramo naš virtuelni server (aka „instanca“) u vašem MCS ličnom nalogu. U prodavnici aplikacija potrebno je da izaberete i instalirate gotov LAMP stek, koji je skup serverskog softvera (LAMP = Linux, Apache, MySQL, PHP) neophodnog za pokretanje većine veb lokacija.

Cloud for Charities: Vodič za migraciju
Cloud for Charities: Vodič za migraciju
Cloud for Charities: Vodič za migraciju
Odaberite odgovarajuću konfiguraciju servera i kreirajte novi SSH ključ. Nakon što kliknete na dugme „Instaliraj“, instalacija servera i LAMP steka će početi, što će potrajati. Sistem će takođe ponuditi preuzimanje privatnog ključa na vaš računar za upravljanje virtuelnom mašinom preko konzole, sačuvajte ga.

Nakon instaliranja aplikacije, odmah podesimo zaštitni zid, to se radi i na vašem ličnom računu: idite na odjeljak “Cloud computing -> Virtual machines” i odaberite “Postavljanje zaštitnog zida”:

Cloud for Charities: Vodič za migraciju
Morate dodati dozvolu za dolazni promet preko porta 80 i 9997. Ovo je neophodno u budućnosti za instaliranje SSL sertifikata i za rad sa phpMyAdmin. Kao rezultat, skup pravila bi trebao izgledati ovako:

Cloud for Charities: Vodič za migraciju
Sada se možete povezati sa svojim serverom preko komandne linije koristeći SSH protokol. Da biste to uradili, upišite sljedeću naredbu, pokazujući na SSH ključ na vašem računaru i eksternu IP adresu vašeg servera (možete je pronaći u odeljku „Virtuelne mašine“):

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

Kada se prvi put povezujete na server, preporučuje se da na njega instalirate sve trenutne ispravke i ponovo ga pokrenete. Da biste to učinili, pokrenite sljedeće naredbe:

$ sudo apt-get update

Sistem će dobiti listu ažuriranja, instalirajte ih pomoću ove naredbe i slijedite upute:

$ sudo apt-get upgrade

Nakon instaliranja ažuriranja, ponovo pokrenite server:

$ sudo reboot

Korak 2: Postavite virtuelne hostove

Mnoge neprofitne organizacije moraju istovremeno održavati nekoliko domena ili poddomena (na primjer, glavnu web stranicu i nekoliko odredišnih stranica za promotivne kampanje, itd.). Sve se to može prikladno smjestiti na jedan server kreiranjem nekoliko virtualnih hostova.

Prvo trebamo kreirati strukturu direktorija za stranice koje će biti prikazane 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

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

Također moramo malo urediti dozvole kako bismo bili sigurni da je dozvoljen pristup za čitanje zajedničkom web direktoriju i svim datotekama i mapama koje sadrži. Ovo je neophodno da bi se stranice stranice ispravno prikazale:

$ sudo chmod -R 755 /var/www

Vaš web server bi sada trebao imati dozvole koje su mu potrebne za prikaz sadržaja. Osim toga, vaš korisnik sada ima mogućnost kreiranja sadržaja u potrebnim direktorijima.

Već postoji index.php fajl u /var/www/html direktorijumu, kopirajmo ga u naše nove direktorijume - 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 web-lokaciji. Da bismo to učinili, prvo ćemo konfigurirati virtualne datoteke hosta, koje određuju kako će Apache web server odgovoriti na zahtjeve različitih domena.

Podrazumevano, Apache ima virtuelni host fajl 000-default.conf koji možemo koristiti kao početnu tačku. Ovo ćemo kopirati da kreiramo virtuelne host fajlove za svaku od naših domena. Počećemo sa jednom domenom, konfigurisati je, kopirati na drugu domenu, a zatim ponovo izvršiti potrebne izmene.

Podrazumevana konfiguracija Ubuntua zahteva da svaka datoteka virtuelnog hosta ima ekstenziju *.conf.

Počnimo s kopiranjem fajla za prvu domenu:

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

Otvorite novi fajl u editoru sa 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 putanju 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 primarni domen, koji se mora podudarati s imenom virtualnog hosta. Ovo mora biti ime vaše domene. Sekunda, ServerAlias, definira druga imena koja treba tumačiti kao da je primarni domen. 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 kreirati onoliko direktorija i virtualnih hostova za svoje web stranice koliko želite! Sada kada smo kreirali naše virtualne datoteke hosta, moramo ih omogućiti. Možemo koristiti uslužni program a2ensite da omogućimo svaku od naših web lokacija na sljedeći način:

$ sudo a2ensite a-dobra.ru.conf

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

Po defaultu, port 80 je zatvoren u LAMP-u i trebat će nam kasnije da instaliramo SSL certifikat. Pa hajde da odmah uredimo ports.conf fajl i onda ponovo pokrenimo Apache:

$ sudo nano /etc/apache2/ports.conf

Dodajte novi red i sačuvajte fajl tako da izgleda ovako:

Listen 80
Listen 443
Listen 9997

Nakon što završite podešavanja, morate ponovo pokrenuti Apache da bi sve promjene stupile na snagu:

$ sudo systemctl reload apache2

Korak 3: Podesite nazive domena

Zatim morate dodati DNS zapise koji će upućivati ​​na vaš novi server. Za upravljanje domenama, naša Aritmetika dobrog fonda koristi uslugu dns-master.ru, to ćemo pokazati na primjeru.

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

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

Cloud for Charities: Vodič za migraciju
IP adresa je adresa Linux servera koji smo upravo kreirali. Možete odrediti TTL = 3600.

Nakon nekog vremena bit će moguće posjetiti Vašu stranicu, ali za sada samo preko 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 njihovo automatsko obnavljanje, što je vrlo zgodno. Da biste dobili SSL certifikate, instalirajte Certbot na vaš server:

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

Instalirajte Certbot paket za Apache koristeći 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 komanda pokreće certbot, keys -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 tada kontaktirati Let's Encrypt server i zatim provjeriti da li stvarno kontrolirate domenu za koju ste zatražili certifikat.

Ako je sve prošlo dobro, certbot će 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 biti ažurirana i Apache će biti ponovo pokrenut da primijeni promjene.

Vaši certifikati su sada preuzeti, instalirani i rade. Pokušajte ponovo učitati svoju web stranicu sa https:// i vidjet ćete ikonu sigurnosti u vašem pretraživaču. Ako testirate svoj server SSL Labs Server Test, dobiće A ocjenu.

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

$ sudo certbot renew --dry-run 

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

Korak 5: Pristupite MySQL-u i phpMyAdmin-u

Mnoge web stranice koriste baze podataka. Alat phpMyAdmin za upravljanje bazom podataka je već instaliran na našem serveru. Da biste mu pristupili, idite na svoj pretraživač koristeći link kao što je:

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

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

Korak 6: Podesite otpremanje datoteka putem SFTP-a

Programerima će biti zgodno uploadati datoteke za vašu web stranicu putem SFTP-a. Da bismo to učinili, kreirat ćemo novog korisnika, nazvati ga webmaster:

$ sudo adduser webmaster

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

Promjena vlasnika direktorija s vašom web lokacijom:

$ 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

Sačuvajte fajl i ponovo pokrenite servis:

$ sudo systemctl restart sshd

Sada se možete povezati na server preko bilo kojeg SFTP klijenta, na primjer, preko FileZilla.

Rezultat

  1. Sada znate kako kreirati nove direktorije i konfigurirati virtuelne hostove za vaše web stranice unutar istog servera.
  2. Možete jednostavno kreirati potrebne SSL certifikate - besplatno je i automatski će se ažurirati.
  3. Možete jednostavno raditi sa MySQL bazom podataka preko poznatog phpMyAdmin-a.
  4. Kreiranje novih SFTP naloga i postavljanje prava pristupa ne zahtijeva mnogo truda. Takvi računi se mogu prenijeti na web programere trećih strana i administratore web lokacija.
  5. Ne zaboravite povremeno ažurirati sistem, a preporučujemo i pravljenje rezervnih kopija - u MCS-u možete jednim klikom napraviti "snimke" cijelog sistema, a zatim, ako je potrebno, 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

Inače, ovdje Na VC-u možete pročitati kako je naša fondacija implementirala platformu za onlajn obrazovanje za siročad zasnovanu na MCS oblaku.

izvor: www.habr.com

Dodajte komentar