Wolk vir filantropiese stigtings: 'n gids tot migrasie

Wolk vir filantropiese stigtings: 'n gids tot migrasie

Nie so lank gelede nie het Mail.Ru Cloud Solutions (MCS) en die Dobro Mail.Ru-diens die projek van stapel gestuur "Wolk vir liefdadigheidsstigtings”, waardeur nie-winsgewende organisasies die hulpbronne van die MCS-wolkplatform gratis kan kry. Liefdadigheidstigting "Goeie rekenkunde» aan die projek deelgeneem en 'n deel van sy infrastruktuur wat op MCS gebaseer is, suksesvol ontplooi.

Nadat die bekragtiging geslaag is, kan die OSW virtuele vermoëns van die MCS ontvang, maar verdere konfigurasie vereis sekere kwalifikasies. In hierdie artikel wil ons spesifieke instruksies deel vir die opstel van 'n Ubuntu Linux-gebaseerde bediener om die stigting se hoofwebwerf en 'n aantal subdomeine met gratis SSL-sertifikate te bestuur. Vir baie sal dit 'n eenvoudige gids wees, maar ons hoop dat ons ervaring nuttig sal wees vir ander nie-winsgewende organisasies, en nie net nie.

FYI: wat kan jy van MCS kry? 4 SVE's, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB objekberging.

Stap 1: begin die virtuele bediener

Kom ons begin sake en skep ons virtuele bediener (ook bekend as "instansie") in jou MCS-rekening. In die toepassingswinkel moet jy 'n klaargemaakte LAMP-stapel kies en installeer, wat 'n stel bedienersagteware (LAMP = Linux, Apache, MySQL, PHP) is wat nodig is om die meeste webwerwe te laat loop.

Wolk vir filantropiese stigtings: 'n gids tot migrasie
Wolk vir filantropiese stigtings: 'n gids tot migrasie
Wolk vir filantropiese stigtings: 'n gids tot migrasie
Kies die toepaslike konfigurasie vir die bediener en skep 'n nuwe SSH-sleutel. Nadat u op die "Installeer"-knoppie geklik het, sal die installasie van die bediener en die LAMP-stapel begin, dit sal 'n rukkie neem. Die stelsel sal ook aanbied om 'n privaat sleutel na die rekenaar af te laai om die virtuele masjien deur die konsole te bestuur, stoor dit.

Nadat ons die toepassing geïnstalleer het, laat ons dadelik die firewall konfigureer, dit word ook in u persoonlike rekening gedoen: gaan na die afdeling "Wolkrekenaars -> Virtuele masjiene" en kies die item "Firewall-instellings":

Wolk vir filantropiese stigtings: 'n gids tot migrasie
Jy moet toestemming byvoeg vir inkomende verkeer deur poorte 80 en 9997. Dit word later vereis om SSL-sertifikate te installeer en om met phpMyAdmin te werk. As gevolg hiervan moet die stel reëls soos volg lyk:

Wolk vir filantropiese stigtings: 'n gids tot migrasie
Nou kan u aan u bediener koppel deur die opdragreël met die SSH-protokol. Om dit te doen, tik die volgende opdrag, spesifiseer die pad na die SSH-sleutel op jou rekenaar en die eksterne IP-adres van jou bediener (jy kan dit vind in die "Virtuele masjiene" afdeling):

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

Tydens die eerste verbinding met die bediener word dit aanbeveel om al die nuutste opdaterings daarop te installeer en dit te herlaai. Om dit te doen, voer die volgende opdragte uit:

$ sudo apt-get update

Die stelsel sal 'n lys van opdaterings ontvang, installeer dit met hierdie opdrag en volg die instruksies:

$ sudo apt-get upgrade

Nadat u die opdaterings geïnstalleer het, herbegin die bediener:

$ sudo reboot

Stap 2: Stel virtuele gashere op

Baie NRO's moet verskeie domeine of subdomeine op dieselfde tyd onderhou (byvoorbeeld die hoofwerf en verskeie bestemmingsbladsye vir promosieveldtogte, ens.). Dit alles kan gerieflik op een bediener geplaas word deur verskeie virtuele gashere te skep.

Eerstens moet ons 'n gidsstruktuur skep vir die werwe wat aan besoekers vertoon sal word. Kom ons skep 'n paar gidse:

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

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

En spesifiseer die eienaar van die huidige gebruiker:

$ 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

veranderlike $USER bevat die gebruikersnaam waaronder jy tans aangemeld is (by verstek is dit die gebruiker ubuntu). Die huidige gebruiker besit nou die public_html-gidse waar ons die inhoud sal stoor.

Ons moet ook die toestemmings 'n bietjie wysig om seker te maak dat leestoegang toegelaat word tot die gedeelde webgids en al die lêers en vouers wat dit bevat. Dit is nodig vir die werfbladsye om korrek te vertoon:

$ sudo chmod -R 755 /var/www

Jou webbediener behoort nou die toestemmings te hê wat dit nodig het om die inhoud te vertoon. Boonop het u gebruiker nou die vermoë om inhoud in die vereiste gidse te skep.

Daar is reeds 'n index.php-lêer in die /var/www/html-gids, kom ons kopieer dit na ons nuwe dopgehou - dit sal vir eers ons inhoud wees:

$ 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

Nou moet jy seker maak dat die gebruiker na jou werf kan gaan. Om dit te doen, sal ons eers virtuele gasheerlêers opstel, wat bepaal hoe die Apache-webbediener op versoeke na verskillende domeine sal reageer.

By verstek het Apache 'n 000-default.conf virtuele gasheerlêer wat ons as 'n beginpunt kan gebruik. Ons gaan dit kopieer om virtuele gasheerlêers vir elkeen van ons domeine te skep. Ons begin met een domein, stel dit op, kopieer dit na 'n ander domein, en maak dan weer die nodige wysigings.

Ubuntu se verstekkonfigurasie vereis dat elke virtuele gasheerlêer 'n *.conf-uitbreiding het.

Kom ons begin deur die lêer vir die eerste domein te kopieer:

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

Maak 'n nuwe lêer oop in 'n wortelredigeerder:

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

Wysig die data soos volg, spesifiseer poort 80, jou data vir ServerAdmin, ServerName, ServerAlias, sowel as die pad na die wortelgids van jou werf, stoor die lêer (Ctrl + X, dan 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 stel die primêre domein, wat moet ooreenstem met die naam van die virtuele gasheer. Dit moet jou domeinnaam wees. Tweedens, ServerAlias, definieer ander name wat geïnterpreteer moet word asof dit die primêre domein is. Dit is nuttig vir die gebruik van bykomende domeinname, soos die gebruik van www.

Kopieer hierdie konfigurasie vir 'n ander gasheer en wysig dit ook volgens analogie:

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

Jy kan soveel dopgehou en virtuele gashere skep as wat jy wil vir jou webwerwe! Noudat ons ons virtuele gasheerlêers geskep het, moet ons dit aktiveer. Ons kan die a2ensite-hulpprogram gebruik om elkeen van ons werwe soos volg te aktiveer:

$ sudo a2ensite a-dobra.ru.conf

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

By verstek is poort 80 in LAMP gesluit, en ons sal dit later nodig hê om 'n SSL-sertifikaat te installeer. Laat ons dus dadelik die ports.conf-lêer redigeer en dan Apache herbegin:

$ sudo nano /etc/apache2/ports.conf

Voeg 'n nuwe reël by en stoor die lêer sodat dit so lyk:

Listen 80
Listen 443
Listen 9997

Nadat u die instellings voltooi het, moet u Apache herbegin sodat alle veranderinge in werking tree:

$ sudo systemctl reload apache2

Stap 3: Stel domeinname op

Vervolgens moet u DNS-rekords byvoeg wat na u nuwe bediener sal wys. Om domeine te bestuur, gebruik ons ​​Arithmetic of Good Foundation die dns-master.ru-diens, ons sal dit met 'n voorbeeld wys.

Die A-rekordinstelling vir die hoofdomein word gewoonlik soos volg gespesifiseer (teken @):

Wolk vir filantropiese stigtings: 'n gids tot migrasie
A-rekord vir subdomeine word gewoonlik soos volg gespesifiseer:

Wolk vir filantropiese stigtings: 'n gids tot migrasie
Die IP-adres is die adres van die Linux-bediener wat ons sopas geskep het. TTL wat jy kan spesifiseer = 3600.

Na 'n geruime tyd sal dit moontlik wees om u webwerf te betree, maar tot dusver slegs deur http://. In die volgende stap sal ons ondersteuning byvoeg https://.

Stap 4: Stel gratis SSL-sertifikate op

U kan gratis Let's Encrypt SSL-sertifikate vir u hoofwerf en alle subdomeine kry. U kan hulle ook instel om outomaties te hernu, wat baie gerieflik is. Om SSL-sertifikate te verkry, installeer Certbot op jou bediener:

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

Installeer Certbot-pakket vir Apache met apt:

$ sudo apt install python-certbot-apache 

Nou is Certbot gereed om te gebruik, voer die opdrag uit:

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

Hierdie opdrag begin certbot, sleutels -d definieer die name van die domeine waarvoor die sertifikaat uitgereik moet word.

As dit die eerste keer is dat jy certbot gebruik, sal jy gevra word om 'n e-posadres in te voer en in te stem tot die diensbepalings. Daarna sal certbot die Let's Encrypt-bediener kontak en dan verifieer dat jy werklik die domein beheer waarvoor jy die sertifikaat aangevra het.

As alles goed gegaan het, sal certbot jou vra hoe jy die HTTPS-konfigurasie wil opstel:

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

Ons beveel aan om opsie 2 te kies en ENTER te druk. Die konfigurasie sal opgedateer word en Apache herbegin om die veranderinge toe te pas.

Jou sertifikate is nou afgelaai, geïnstalleer en werk. Probeer om jou werf te herlaai met https:// en jy sal die sekuriteitsikoon in jou blaaier sien. As jy jou bediener toets SSL Labs-bedienertoets, sal hy 'n A-graad kry.

Kom ons Enkripteer-sertifikate is slegs vir 90 dae geldig, maar die certbot-pakket wat ons sopas geïnstalleer het, sal die sertifikate outomaties hernu. Om die opdateringsproses te toets, kan ons certbot droogloop:

$ sudo certbot renew --dry-run 

As jy geen foute sien as gevolg van die uitvoer van hierdie opdrag nie, dan werk alles!

Stap 5: Toegang tot MySQL en phpMyAdmin

Baie webwerwe gebruik databasisse. Die phpMyAdmin-nutsding vir die bestuur van die databasis is reeds op ons bediener geïnstalleer. Om toegang daartoe te verkry, gaan na jou blaaier deur die volgende skakel te gebruik:

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

Die wagwoord vir worteltoegang kan verkry word in die MCS persoonlike rekening (https://mcs.mail.ru/app/services/marketplace/apps/). Moenie vergeet om jou root-wagwoord te verander die eerste keer dat jy aanmeld nie!

Stap 6: Stel lêeroplaai op via SFTP

Dit sal gerieflik wees vir ontwikkelaars om lêers vir jou webwerf via SFTP op te laai. Om dit te doen, sal ons 'n nuwe gebruiker skep, noem dit webmeester:

$ sudo adduser webmaster

Die stelsel sal jou vra om 'n wagwoord in te stel en ander data in te voer.

Verander die eienaar van die gids met jou webwerf:

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

Kom ons verander nou die SSH-konfigurasie sodat die nuwe gebruiker slegs toegang tot SFTP het en nie die SSH-terminaal nie:

$ sudo nano /etc/ssh/sshd_config

Blaai deur die konfigurasielêer tot aan die einde en voeg die volgende blok by:

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

Stoor die lêer en herbegin die diens:

$ sudo systemctl restart sshd

Nou kan jy aan die bediener koppel deur enige kliënt vir SFTP, byvoorbeeld deur FileZilla.

Totale

  1. Nou weet jy hoe om nuwe dopgehou te skep en virtuele gashere vir jou webwerwe op 'n enkele bediener op te stel.
  2. Jy kan maklik die nodige SSL-sertifikate skep – dit is gratis, en hulle sal outomaties opgedateer word.
  3. Die MySQL-databasis kan gerieflik deur die bekende phpMyAdmin gewerk word.
  4. Die skep van nuwe SFTP-rekeninge en die opstel van toegangsregte sal nie veel moeite verg nie. Sulke rekeninge kan na derdeparty-webontwikkelaars en werfadministrateurs oorgedra word.
  5. Moenie vergeet om die stelsel periodiek op te dateer nie, en ons beveel ook aan om rugsteun te maak - in MCS kan u "kiekies" van die hele stelsel neem met een klik, en dan, indien nodig, volledige beelde begin.

Gebruikte hulpbronne wat nuttig kan wees:

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

By the way, hier Jy kan op VC lees hoe ons stigting 'n platform ontplooi het vir aanlyn onderwys van weeskinders gebaseer op die MCS-wolk.

Bron: will.com

Voeg 'n opmerking