Pred kratkim sta Mail.Ru Cloud Solutions (MCS) in storitev Dobro Mail.Ru lansirala projekt “
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.
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«:
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:
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 @
):
Zapis A za poddomene je običajno določen takole:
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
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 (
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
- Zdaj veste, kako ustvariti nove imenike in konfigurirati virtualne gostitelje za svoja spletna mesta znotraj istega strežnika.
- Enostavno lahko ustvarite potrebne SSL certifikate – to je brezplačno in se bodo samodejno posodabljali.
- Z bazo podatkov MySQL lahko udobno delate prek znanega phpMyAdmin.
- 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.
- 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:
Mimogrede,
Vir: www.habr.com