Cloud for Charities: Migrasjonsveiledning

Cloud for Charities: Migrasjonsveiledning

For ikke lenge siden lanserte Mail.Ru Cloud Solutions (MCS) og Dobro Mail.Ru-tjenesten prosjektet "Cloud for veldedige organisasjoner”, takket være hvilke ideelle organisasjoner kan skaffe ressursene til MCS-skyplattformen gratis. veldedige stiftelse"Aritmetikk av godhet» deltok i prosjektet og implementerte en del av sin infrastruktur basert på MCS.

Etter bestått validering kan en NPO motta virtuell kapasitet fra MCS, men ytterligere konfigurasjon krever visse kvalifikasjoner. I dette materialet ønsker vi å dele spesifikke instruksjoner for å sette opp en Ubuntu Linux-basert server for å kjøre hovednettstedet og en rekke underdomener ved å bruke gratis SSL-sertifikater. For mange vil dette være en enkel veiledning, men vi håper at vår erfaring vil være nyttig for andre ideelle organisasjoner, og ikke bare.

FYI: Hva kan du få fra MCS? 4 CPUer, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB objektlagring.

Trinn 1: start den virtuelle serveren

La oss gå rett til poenget og lage vår virtuelle server (også kalt "forekomst") i din personlige MCS-konto. I appbutikken må du velge og installere en ferdig LAMP-stabel, som er et sett med serverprogramvare (LAMP = Linux, Apache, MySQL, PHP) som er nødvendig for å kjøre de fleste nettsteder.

Cloud for Charities: Migrasjonsveiledning
Cloud for Charities: Migrasjonsveiledning
Cloud for Charities: Migrasjonsveiledning
Velg riktig serverkonfigurasjon og lag en ny SSH-nøkkel. Etter å ha klikket på "Installer"-knappen vil installasjonen av serveren og LAMP-stakken begynne, dette vil ta litt tid. Systemet vil også tilby å laste ned en privat nøkkel til datamaskinen din for å administrere den virtuelle maskinen via konsollen, lagre den.

Etter å ha installert applikasjonen, la oss umiddelbart sette opp brannmuren, dette gjøres også på din personlige konto: gå til delen "Cloud computing -> Virtuelle maskiner" og velg "Angi brannmuren":

Cloud for Charities: Migrasjonsveiledning
Du må legge til tillatelse for innkommende trafikk gjennom port 80 og 9997. Dette er nødvendig i fremtiden for å installere SSL-sertifikater og for å jobbe med phpMyAdmin. Som et resultat bør regelsettet se slik ut:

Cloud for Charities: Migrasjonsveiledning
Nå kan du koble til serveren din via kommandolinjen ved å bruke SSH-protokollen. For å gjøre dette, skriv inn følgende kommando, pek på SSH-tasten på datamaskinen din og den eksterne IP-adressen til serveren din (du finner den i delen "Virtuelle maskiner"):

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

Når du kobler til serveren for første gang, anbefales det å installere alle gjeldende oppdateringer på den og starte den på nytt. For å gjøre dette, kjør følgende kommandoer:

$ sudo apt-get update

Systemet vil motta en liste over oppdateringer, installere dem med denne kommandoen og følge instruksjonene:

$ sudo apt-get upgrade

Etter å ha installert oppdateringene, start serveren på nytt:

$ sudo reboot

Trinn 2: Sett opp virtuelle verter

Mange ideelle organisasjoner trenger å opprettholde flere domener eller underdomener samtidig (for eksempel et hovednettsted og flere destinasjonssider for reklamekampanjer osv.). Alt dette kan enkelt plasseres på én server ved å opprette flere virtuelle verter.

Først må vi lage en katalogstruktur for nettstedene som skal vises til besøkende. La oss lage noen kataloger:

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

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

Og spesifiser eieren av gjeldende bruker:

$ 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

variabel $USER inneholder brukernavnet som du er logget inn under (som standard er dette brukeren ubuntu). Nå eier den nåværende brukeren public_html-katalogene der vi skal lagre innholdet.

Vi må også redigere tillatelsene litt for å sikre at lesetilgang er tillatt til den delte webkatalogen og alle filene og mappene den inneholder. Dette er nødvendig for at sidene skal vises riktig:

$ sudo chmod -R 755 /var/www

Nettserveren din skal nå ha tillatelsene den trenger for å vise innholdet. I tillegg har brukeren din nå muligheten til å lage innhold i de nødvendige katalogene.

Det er allerede en index.php-fil i /var/www/html-katalogen, la oss kopiere den til våre nye kataloger - dette vil være innholdet vårt for nå:

$ 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

Nå må du sørge for at brukeren får tilgang til nettstedet ditt. For å gjøre dette vil vi først konfigurere de virtuelle vertsfilene, som bestemmer hvordan Apache-nettserveren vil svare på forespørsler til forskjellige domener.

Som standard har Apache en virtuell vertsfil 000-default.conf som vi kan bruke som utgangspunkt. Vi skal kopiere dette for å lage virtuelle vertsfiler for hvert av våre domener. Vi starter med ett domene, konfigurerer det, kopierer det til et annet domene og gjør de nødvendige endringene på nytt.

Ubuntus standardkonfigurasjon krever at hver virtuell vertsfil har en *.conf-utvidelse.

La oss starte med å kopiere filen for det første domenet:

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

Åpne en ny fil i et redigeringsprogram med rotrettigheter:

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

Rediger dataene som følger, spesifiser port 80, dataene dine for ServerAdmin, ServerName, ServerAlias, samt banen til rotkatalogen til nettstedet ditt, lagre filen (Ctrl+X, deretter 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 angir primærdomenet, som må samsvare med det virtuelle vertsnavnet. Dette må være ditt domenenavn. Sekund, ServerAlias, definerer andre navn som skal tolkes som om det var hoveddomenet. Dette er praktisk for å bruke flere domenenavn, for eksempel ved å bruke www.

La oss kopiere denne konfigurasjonen for en annen vert og også redigere den på samme måte:

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

Du kan opprette så mange kataloger og virtuelle verter for nettstedene dine som du vil! Nå som vi har laget våre virtuelle vertsfiler, må vi aktivere dem. Vi kan bruke a2ensite-verktøyet for å aktivere hver av våre nettsteder slik:

$ sudo a2ensite a-dobra.ru.conf

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

Som standard er port 80 lukket i LAMP, og vi trenger den senere for å installere et SSL-sertifikat. Så la oss umiddelbart redigere ports.conf-filen og deretter starte Apache på nytt:

$ sudo nano /etc/apache2/ports.conf

Legg til en ny linje og lagre filen slik at den ser slik ut:

Listen 80
Listen 443
Listen 9997

Etter å ha fullført innstillingene, må du starte Apache på nytt for at alle endringene skal tre i kraft:

$ sudo systemctl reload apache2

Trinn 3: Sett opp domenenavn

Deretter må du legge til DNS-poster som vil peke til den nye serveren din. For å administrere domener bruker vår Arithmetic of Good Foundation tjenesten dns-master.ru, vi vil vise den med et eksempel.

Å sette opp en A-post for hoveddomenet er vanligvis indikert som følger (tegn @):

Cloud for Charities: Migrasjonsveiledning
A-posten for underdomener er vanligvis spesifisert slik:

Cloud for Charities: Migrasjonsveiledning
IP-adressen er adressen til Linux-serveren vi nettopp opprettet. Du kan spesifisere TTL = 3600.

Etter en tid vil det være mulig å besøke nettstedet ditt, men foreløpig kun gjennom http://. I neste trinn vil vi legge til støtte https://.

Trinn 4: Sett opp gratis SSL-sertifikater

Du kan få gratis Let's Encrypt SSL-sertifikater for hovedsiden din og alle underdomener. Du kan også konfigurere deres automatiske fornyelse, noe som er veldig praktisk. For å få SSL-sertifikater, installer Certbot på serveren din:

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

Installer Certbot-pakken for Apache ved å bruke apt:

$ sudo apt install python-certbot-apache 

Nå er Certbot klar til bruk, kjør kommandoen:

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

Denne kommandoen kjører certbot, keys -d definere navnene på domenene som sertifikatet skal utstedes for.

Hvis dette er første gang du starter certbot, vil du bli bedt om å skrive inn e-postadressen din og godta vilkårene for bruk av tjenesten. certbot vil da kontakte Let's Encrypt-serveren og deretter bekrefte at du faktisk kontrollerer domenet du ba om sertifikatet for.

Hvis alt gikk bra, vil certbot spørre hvordan du vil konfigurere HTTPS-konfigurasjonen:

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

Vi anbefaler å velge alternativ 2 og trykke ENTER. Konfigurasjonen vil bli oppdatert og Apache vil bli startet på nytt for å bruke endringene.

Sertifikatene dine er nå lastet ned, installert og fungerer. Prøv å laste inn nettstedet ditt på nytt med https:// og du vil se sikkerhetsikonet i nettleseren din. Hvis du tester serveren din SSL Labs Server Test, vil han få en A-karakter.

Let's Encrypt-sertifikater er bare gyldige i 90 dager, men certbot-pakken vi nettopp installerte vil fornye sertifikater automatisk. For å teste oppdateringsprosessen kan vi gjøre en tørrkjøring av certbot:

$ sudo certbot renew --dry-run 

Hvis du ikke ser noen feil som et resultat av å kjøre denne kommandoen, fungerer alt!

Trinn 5: Få tilgang til MySQL og phpMyAdmin

Mange nettsteder bruker databaser. phpMyAdmin-verktøyet for databaseadministrasjon er allerede installert på serveren vår. For å få tilgang til den, gå til nettleseren din ved å bruke en lenke som:

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

Passordet for root-tilgang kan fås på din personlige MCS-konto (https://mcs.mail.ru/app/services/marketplace/apps/). Ikke glem å endre root-passordet ditt første gang du logger på!

Trinn 6: Sett opp filopplasting via SFTP

Utviklere vil finne det praktisk å laste opp filer til nettstedet ditt via SFTP. For å gjøre dette, vil vi opprette en ny bruker, kall ham webmaster:

$ sudo adduser webmaster

Systemet vil be deg angi et passord og angi noen andre data.

Endre eieren av katalogen med nettstedet ditt:

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

La oss nå endre SSH-konfigurasjonen slik at den nye brukeren bare har tilgang til SFTP og ikke SSH-terminalen:

$ sudo nano /etc/ssh/sshd_config

Rull helt til slutten av konfigurasjonsfilen og legg til følgende blokk:

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

Lagre filen og start tjenesten på nytt:

$ sudo systemctl restart sshd

Nå kan du koble til serveren gjennom en hvilken som helst SFTP-klient, for eksempel gjennom FileZilla.

Total

  1. Nå vet du hvordan du oppretter nye kataloger og konfigurerer virtuelle verter for nettstedene dine på samme server.
  2. Du kan enkelt lage de nødvendige SSL-sertifikatene – det er gratis, og de vil bli oppdatert automatisk.
  3. Du kan enkelt jobbe med MySQL-databasen gjennom den velkjente phpMyAdmin.
  4. Å opprette nye SFTP-kontoer og sette opp tilgangsrettigheter krever ikke mye innsats. Slike kontoer kan overføres til tredjeparts webutviklere og nettstedadministratorer.
  5. Ikke glem å oppdatere systemet med jevne mellomrom, og vi anbefaler også å ta sikkerhetskopier - i MCS kan du ta "øyeblikksbilder" av hele systemet med ett klikk, og deretter, om nødvendig, starte hele bilder.

Brukte ressurser som kan være nyttige:

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

Forresten, her Du kan lese på VC hvordan stiftelsen vår implementerte en plattform for nettbasert utdanning for foreldreløse barn basert på MCS-skyen.

Kilde: www.habr.com

Legg til en kommentar