Cloud for Charities: Migration Guide

Cloud for Charities: Migration Guide

For kort tid siden lancerede Mail.Ru Cloud Solutions (MCS) og Dobro Mail.Ru-tjenesten projektet "Sky for velgørende organisationer”, takket være hvilke non-profit organisationer kan få ressourcerne fra MCS cloud platform gratis. velgørende fond"Aritmetik af godhed» deltog i projektet og implementerede med succes en del af sin infrastruktur baseret på MCS.

Efter bestået validering kan en NPO modtage virtuel kapacitet fra MCS, men yderligere konfiguration kræver visse kvalifikationer. I dette materiale ønsker vi at dele specifikke instruktioner til opsætning af en Ubuntu Linux-baseret server til at køre hovedfundamentets websted og en række underdomæner ved hjælp af gratis SSL-certifikater. For mange vil dette være en simpel guide, men vi håber, at vores erfaring vil være nyttig for andre non-profit organisationer, og ikke kun.

FYI: Hvad kan du få fra MCS? 4 CPU'er, 32 GB RAM, 1 TB HDD, Ubuntu Linux OS, 500 GB objektlager.

Trin 1: Start den virtuelle server

Lad os gå direkte til sagen og oprette vores virtuelle server (også kaldet "instans") på din personlige MCS-konto. I app-butikken skal du vælge og installere en færdiglavet LAMP-stak, som er et sæt serversoftware (LAMP = Linux, Apache, MySQL, PHP), der er nødvendigt for at køre de fleste hjemmesider.

Cloud for Charities: Migration Guide
Cloud for Charities: Migration Guide
Cloud for Charities: Migration Guide
Vælg den relevante serverkonfiguration og opret en ny SSH-nøgle. Efter at have klikket på knappen "Installer" begynder installationen af ​​serveren og LAMP-stakken, dette vil tage noget tid. Systemet vil også tilbyde at downloade en privat nøgle til din computer for at administrere den virtuelle maskine via konsollen, gem den.

Efter installation af applikationen, lad os straks konfigurere firewallen, dette gøres også på din personlige konto: gå til "Cloud computing -> Virtuelle maskiner" sektionen og vælg "Indstilling af firewall":

Cloud for Charities: Migration Guide
Du skal tilføje tilladelse til indgående trafik gennem port 80 og 9997. Dette er nødvendigt i fremtiden for at installere SSL-certifikater og arbejde med phpMyAdmin. Som følge heraf bør regelsættet se sådan ud:

Cloud for Charities: Migration Guide
Nu kan du oprette forbindelse til din server via kommandolinjen ved hjælp af SSH-protokollen. For at gøre dette skal du skrive følgende kommando og pege på SSH-nøglen på din computer og den eksterne IP-adresse på din server (du kan finde den i afsnittet "Virtuelle maskiner"):

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

Når du opretter forbindelse til serveren for første gang, anbefales det at installere alle aktuelle opdateringer på den og genstarte den. For at gøre dette skal du køre følgende kommandoer:

$ sudo apt-get update

Systemet vil modtage en liste over opdateringer, installere dem ved hjælp af denne kommando og følge instruktionerne:

$ sudo apt-get upgrade

Efter installation af opdateringerne skal du genstarte serveren:

$ sudo reboot

Trin 2: Konfigurer virtuelle værter

Mange nonprofitorganisationer har brug for at vedligeholde flere domæner eller underdomæner på samme tid (f.eks. et hovedwebsted og flere destinationssider for salgsfremmende kampagner osv.). Alt dette kan bekvemt placeres på én server ved at oprette flere virtuelle værter.

Først skal vi oprette en mappestruktur for de websteder, der vil blive vist til besøgende. Lad os oprette nogle mapper:

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

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

Og angiv ejeren af ​​den aktuelle bruger:

$ 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 indeholder det brugernavn, som du i øjeblikket er logget ind under (som standard er dette brugeren ubuntu). Nu ejer den nuværende bruger public_html mapperne, hvor vi gemmer indholdet.

Vi skal også redigere tilladelserne lidt for at sikre, at læseadgang er tilladt til den delte webmappe og alle de filer og mapper, den indeholder. Dette er nødvendigt for at webstedets sider kan vises korrekt:

$ sudo chmod -R 755 /var/www

Din webserver skulle nu have de tilladelser, den skal bruge for at vise indholdet. Derudover har din bruger nu mulighed for at oprette indhold i de nødvendige mapper.

Der er allerede en index.php fil i mappen /var/www/html, lad os kopiere den til vores nye mapper - dette vil være vores indhold indtil videre:

$ 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

Nu skal du sikre dig, at brugeren kan få adgang til dit websted. For at gøre dette vil vi først konfigurere de virtuelle værtsfiler, som bestemmer, hvordan Apache-webserveren vil reagere på anmodninger til forskellige domæner.

Som standard har Apache en virtuel værtsfil 000-default.conf, som vi kan bruge som udgangspunkt. Vi vil kopiere dette for at oprette virtuelle værtsfiler for hvert af vores domæner. Vi starter med et domæne, konfigurerer det, kopierer det til et andet domæne og foretager derefter de nødvendige redigeringer igen.

Ubuntus standardkonfiguration kræver, at hver virtuel værtsfil har en *.conf-udvidelse.

Lad os starte med at kopiere filen til det første domæne:

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

Åbn en ny fil i en editor med root-rettigheder:

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

Rediger dataene som følger, og angiv port 80, dine data for ServerAdmin, ServerName, ServerAlias, samt stien til rodmappen på dit websted, gem filen (Ctrl+X, derefter 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 angiver det primære domæne, som skal matche det virtuelle værtsnavn. Dette skal være dit domænenavn. Anden, ServerAlias, definerer andre navne, der skal fortolkes som om det var det primære domæne. Dette er praktisk til at bruge yderligere domænenavne, for eksempel ved at bruge www.

Lad os kopiere denne konfiguration til en anden vært og også redigere den på samme måde:

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

Du kan oprette så mange mapper og virtuelle værter til dine websteder, som du vil! Nu hvor vi har oprettet vores virtuelle værtsfiler, skal vi aktivere dem. Vi kan bruge a2ensite-værktøjet til at aktivere hver af vores websteder som dette:

$ sudo a2ensite a-dobra.ru.conf

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

Som standard er port 80 lukket i LAMP, og vi skal bruge den senere for at installere et SSL-certifikat. Så lad os straks redigere filen ports.conf og derefter genstarte Apache:

$ sudo nano /etc/apache2/ports.conf

Tilføj en ny linje og gem filen, så den ser sådan ud:

Listen 80
Listen 443
Listen 9997

Når du har fuldført indstillingerne, skal du genstarte Apache for at alle ændringerne træder i kraft:

$ sudo systemctl reload apache2

Trin 3: Konfigurer domænenavne

Dernæst skal du tilføje DNS-poster, der peger på din nye server. For at administrere domæner bruger vores Arithmetic of Good Foundation tjenesten dns-master.ru, vi viser det med et eksempel.

Opsætning af en A-record for hoveddomænet er normalt angivet som følger (tegn @):

Cloud for Charities: Migration Guide
A-posten for underdomæner er normalt angivet sådan:

Cloud for Charities: Migration Guide
IP-adressen er adressen på den Linux-server, vi lige har oprettet. Du kan angive TTL = 3600.

Efter nogen tid vil det være muligt at besøge dit websted, men indtil videre kun igennem http://. I næste trin tilføjer vi support https://.

Trin 4: Konfigurer gratis SSL-certifikater

Du kan få gratis Let's Encrypt SSL-certifikater til dit hovedwebsted og alle underdomæner. Du kan også konfigurere deres automatiske fornyelse, hvilket er meget praktisk. For at få SSL-certifikater skal du installere Certbot på din server:

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

Installer Certbot-pakken til Apache vha apt:

$ sudo apt install python-certbot-apache 

Nu er Certbot klar til brug, kør kommandoen:

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

Denne kommando kører certbot, keys -d definere navnene på de domæner, som certifikatet skal udstedes for.

Hvis det er første gang, du starter certbot, vil du blive bedt om at indtaste din e-mailadresse og acceptere vilkårene for brug af tjenesten. certbot vil derefter kontakte Let's Encrypt-serveren og derefter bekræfte, at du rent faktisk kontrollerer det domæne, som du har anmodet om certifikatet for.

Hvis alt gik godt, vil certbot spørge, hvordan du vil konfigurere HTTPS-konfigurationen:

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 at vælge mulighed 2 og trykke på ENTER. Konfigurationen vil blive opdateret, og Apache vil blive genstartet for at anvende ændringerne.

Dine certifikater er nu downloadet, installeret og fungerer. Prøv at genindlæse dit websted med https://, og du vil se sikkerhedsikonet i din browser. Hvis du tester din server SSL Labs Server Test, får han en A-karakter.

Let's Encrypt-certifikater er kun gyldige i 90 dage, men certbot-pakken, vi lige har installeret, fornyer certifikater automatisk. For at teste opdateringsprocessen kan vi lave en tør kørsel af certbot:

$ sudo certbot renew --dry-run 

Hvis du ikke ser nogen fejl som et resultat af at køre denne kommando, så virker alt!

Trin 5: Få adgang til MySQL og phpMyAdmin

Mange hjemmesider bruger databaser. phpMyAdmin-værktøjet til databasestyring er allerede installeret på vores server. For at få adgang til det, gå til din browser ved hjælp af et link som:

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

Adgangskoden til root-adgang kan fås på din MCS personlige konto (https://mcs.mail.ru/app/services/marketplace/apps/). Glem ikke at ændre din root-adgangskode første gang du logger på!

Trin 6: Konfigurer filoverførsel via SFTP

Udviklere vil finde det praktisk at uploade filer til dit websted via SFTP. For at gøre dette opretter vi en ny bruger, kalder ham webmaster:

$ sudo adduser webmaster

Systemet vil bede dig om at angive en adgangskode og indtaste nogle andre data.

Ændring af ejeren af ​​mappen med dit websted:

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

Lad os nu ændre SSH-konfigurationen, så den nye bruger kun har adgang til SFTP og ikke SSH-terminalen:

$ sudo nano /etc/ssh/sshd_config

Rul helt til slutningen af ​​konfigurationsfilen, og tilføj følgende blok:

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

Gem filen og genstart tjenesten:

$ sudo systemctl restart sshd

Nu kan du oprette forbindelse til serveren gennem enhver SFTP-klient, for eksempel via FileZilla.

Total

  1. Nu ved du, hvordan du opretter nye mapper og konfigurerer virtuelle værter til dine websteder på den samme server.
  2. Du kan nemt oprette de nødvendige SSL-certifikater – det er gratis, og de opdateres automatisk.
  3. Du kan nemt arbejde med MySQL-databasen gennem den velkendte phpMyAdmin.
  4. Oprettelse af nye SFTP-konti og opsætning af adgangsrettigheder kræver ikke meget indsats. Sådanne konti kan overføres til tredjeparts webudviklere og webstedsadministratorer.
  5. Glem ikke at opdatere systemet med jævne mellemrum, og vi anbefaler også at lave sikkerhedskopier - i MCS kan du tage "snapshots" af hele systemet med et enkelt klik og derefter, om nødvendigt, starte hele billeder.

Brugte ressourcer, der 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

Af den måde, her Du kan læse på VC, hvordan vores fond implementerede en platform til online undervisning for forældreløse børn baseret på MCS-skyen.

Kilde: www.habr.com

Tilføj en kommentar