För inte så länge sedan lanserade Mail.Ru Cloud Solutions (MCS) och Dobro Mail.Ru-tjänsten projektet "
Efter godkänd validering kan en NPO ta emot virtuell kapacitet från MCS, men ytterligare konfiguration kräver vissa kvalifikationer. I det här materialet vill vi dela med oss av specifika instruktioner för att ställa in en Ubuntu Linux-baserad server för att köra huvudwebbplatsen och ett antal underdomäner med gratis SSL-certifikat. För många blir detta en enkel guide, men vi hoppas att vår erfarenhet kommer att vara användbar för andra ideella organisationer, och inte bara.
FYI: Vad kan du få från MCS? 4 processorer, 32 GB RAM, 1 TB hårddisk, Ubuntu Linux OS, 500 GB objektlagring.
Steg 1: starta den virtuella servern
Låt oss gå direkt till saken och skapa vår virtuella server (aka "instans") i ditt personliga MCS-konto. I appbutiken måste du välja och installera en färdig LAMP-stack, som är en uppsättning serverprogramvara (LAMP = Linux, Apache, MySQL, PHP) som krävs för att köra de flesta webbplatser.
Välj lämplig serverkonfiguration och skapa en ny SSH-nyckel. Efter att ha klickat på "Installera"-knappen börjar installationen av servern och LAMP-stacken, detta kommer att ta lite tid. Systemet kommer också att erbjuda att ladda ner en privat nyckel till din dator för att hantera den virtuella maskinen via konsolen, spara den.
Efter att ha installerat applikationen, låt oss omedelbart ställa in brandväggen, detta görs också på ditt personliga konto: gå till avsnittet "Cloud computing -> Virtuella maskiner" och välj "Ställa in brandväggen":
Du måste lägga till behörighet för inkommande trafik genom port 80 och 9997. Detta är nödvändigt i framtiden för att installera SSL-certifikat och för att arbeta med phpMyAdmin. Som ett resultat bör uppsättningen regler se ut så här:
Nu kan du ansluta till din server via kommandoraden med hjälp av SSH-protokollet. För att göra detta, skriv följande kommando och peka på SSH-nyckeln på din dator och den externa IP-adressen till din server (du hittar den i avsnittet "Virtuella maskiner"):
$ ssh -i /путь/к/ключу/key.pem ubuntu@<ip_сервера>
När du ansluter till servern för första gången rekommenderas det att installera alla aktuella uppdateringar på den och starta om den. För att göra detta, kör följande kommandon:
$ sudo apt-get update
Systemet kommer att få en lista med uppdateringar, installera dem med det här kommandot och följ instruktionerna:
$ sudo apt-get upgrade
När du har installerat uppdateringarna startar du om servern:
$ sudo reboot
Steg 2: Konfigurera virtuella värdar
Många ideella organisationer behöver underhålla flera domäner eller underdomäner samtidigt (till exempel en huvudwebbplats och flera målsidor för reklamkampanjer, etc.). Allt detta kan enkelt placeras på en server genom att skapa flera virtuella värdar.
Först måste vi skapa en katalogstruktur för de webbplatser som kommer att visas för besökare. Låt oss skapa några kataloger:
$ sudo mkdir -p /var/www/a-dobra.ru/public_html
$ sudo mkdir -p /var/www/promo.a-dobra.ru/public_html
Och ange ägaren till den nuvarande användaren:
$ 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
innehåller användarnamnet som du för närvarande är inloggad under (som standard är detta användaren ubuntu
). Nu äger den nuvarande användaren public_html-katalogerna där vi kommer att lagra innehållet.
Vi behöver också redigera behörigheterna lite för att säkerställa att läsåtkomst tillåts till den delade webbkatalogen och alla filer och mappar den innehåller. Detta är nödvändigt för att webbplatssidorna ska visas korrekt:
$ sudo chmod -R 755 /var/www
Din webbserver bör nu ha de behörigheter den behöver för att visa innehållet. Dessutom har din användare nu möjlighet att skapa innehåll i de kataloger som krävs.
Det finns redan en index.php-fil i /var/www/html-katalogen, låt oss kopiera den till våra nya kataloger - detta kommer att vara vårt innehåll för tillfället:
$ 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 måste du se till att användaren kan komma åt din webbplats. För att göra detta kommer vi först att konfigurera de virtuella värdfilerna, som avgör hur Apache-webbservern kommer att svara på förfrågningar till olika domäner.
Som standard har Apache en virtuell värdfil 000-default.conf som vi kan använda som utgångspunkt. Vi kommer att kopiera detta för att skapa virtuella värdfiler för var och en av våra domäner. Vi börjar med en domän, konfigurerar den, kopierar den till en annan domän och gör sedan de nödvändiga ändringarna igen.
Ubuntus standardkonfiguration kräver att varje virtuell värdfil har ett *.conf-tillägg.
Låt oss börja med att kopiera filen för den första domänen:
$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/a-dobra.ru.conf
Öppna en ny fil i en editor med root-rättigheter:
$ sudo nano /etc/apache2/sites-available/a-dobra.ru.conf
Redigera data enligt följande, ange port 80, dina data för ServerAdmin
, ServerName
, ServerAlias
, samt sökvägen till rotkatalogen på din webbplats, spara filen (Ctrl+X, sedan 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
anger den primära domänen, som måste matcha det virtuella värdnamnet. Detta måste vara ditt domännamn. Andra, ServerAlias
, definierar andra namn som ska tolkas som om det vore den primära domänen. Detta är praktiskt för att använda ytterligare domännamn, till exempel genom att använda www.
Låt oss kopiera den här konfigurationen för en annan värd och även redigera den på samma sätt:
$ sudo cp /etc/apache2/sites-available/a-dobra.ru.conf /etc/apache2/sites-available/promo.a-dobra.ru.conf
Du kan skapa så många kataloger och virtuella värdar för dina webbplatser som du vill! Nu när vi har skapat våra virtuella värdfiler måste vi aktivera dem. Vi kan använda verktyget a2ensite för att aktivera var och en av våra webbplatser så här:
$ sudo a2ensite a-dobra.ru.conf
$ sudo a2ensite promo.a-dobra.ru.conf
Som standard är port 80 stängd i LAMP, och vi kommer att behöva den senare för att installera ett SSL-certifikat. Så låt oss omedelbart redigera filen ports.conf och sedan starta om Apache:
$ sudo nano /etc/apache2/ports.conf
Lägg till en ny rad och spara filen så att den ser ut så här:
Listen 80
Listen 443
Listen 9997
När du har slutfört inställningarna måste du starta om Apache för att alla ändringar ska träda i kraft:
$ sudo systemctl reload apache2
Steg 3: Konfigurera domännamn
Därefter måste du lägga till DNS-poster som pekar på din nya server. För att hantera domäner använder vår Arithmetic of Good Foundation tjänsten dns-master.ru, vi visar det med ett exempel.
Att sätta upp en A-post för huvuddomänen indikeras vanligtvis enligt följande (tecken @
):
A-posten för underdomäner anges vanligtvis så här:
IP-adressen är adressen till Linux-servern vi just skapade. Du kan ange TTL = 3600.
Efter en tid kommer det att vara möjligt att besöka din webbplats, men för närvarande endast genom http://
. I nästa steg kommer vi att lägga till support https://
.
Steg 4: Konfigurera gratis SSL-certifikat
Du kan få gratis Let's Encrypt SSL-certifikat för din huvudsajt och alla underdomäner. Du kan också konfigurera deras automatiska förnyelse, vilket är mycket bekvämt. För att få SSL-certifikat, installera Certbot på din server:
$ sudo add-apt-repository ppa:certbot/certbot
Installera Certbot-paketet för Apache med apt
:
$ sudo apt install python-certbot-apache
Nu är Certbot redo att användas, kör kommandot:
$ sudo certbot --apache -d a-dobra.ru -d www.a-dobra.ru -d promo.a-dobra.ru
Detta kommando kör certbot, keys -d
definiera namnen på de domäner för vilka certifikatet ska utfärdas.
Om det är första gången du startar certbot kommer du att bli ombedd att ange din e-postadress och godkänna användarvillkoren för tjänsten. certbot kommer då att kontakta Let's Encrypt-servern och sedan verifiera att du faktiskt kontrollerar domänen som du begärde certifikatet för.
Om allt gick bra kommer certbot att fråga hur du vill konfigurera 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 rekommenderar att du väljer alternativ 2 och trycker på ENTER. Konfigurationen kommer att uppdateras och Apache kommer att startas om för att tillämpa ändringarna.
Dina certifikat är nu nedladdade, installerade och fungerar. Testa att ladda om din webbplats med https:// så ser du säkerhetsikonen i din webbläsare. Om du testar din server
Let's Encrypt-certifikat är bara giltiga i 90 dagar, men certbot-paketet vi just installerade kommer att förnya certifikat automatiskt. För att testa uppdateringsprocessen kan vi göra en torrkörning av certbot:
$ sudo certbot renew --dry-run
Om du inte ser några fel som ett resultat av att köra det här kommandot, så fungerar allt!
Steg 5: Öppna MySQL och phpMyAdmin
Många webbplatser använder databaser. phpMyAdmin-verktyget för databashantering är redan installerat på vår server. För att komma åt den, gå till din webbläsare med en länk som:
https://<ip-адрес сервера>:9997
Lösenordet för root-åtkomst kan erhållas i ditt personliga MCS-konto (
Steg 6: Konfigurera filuppladdning via SFTP
Utvecklare kommer att finna det bekvämt att ladda upp filer till din webbplats via SFTP. För att göra detta kommer vi att skapa en ny användare, kalla honom webmaster:
$ sudo adduser webmaster
Systemet kommer att be dig ställa in ett lösenord och ange några andra uppgifter.
Ändra ägare av katalogen med din webbplats:
$ sudo chown -R webmaster:webmaster /var/www/a-dobra.ru/public_html
Låt oss nu ändra SSH-konfigurationen så att den nya användaren bara har tillgång till SFTP och inte SSH-terminalen:
$ sudo nano /etc/ssh/sshd_config
Bläddra till slutet av konfigurationsfilen och lägg till följande block:
Match User webmaster
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/www/a-dobra.ru
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
Spara filen och starta om tjänsten:
$ sudo systemctl restart sshd
Nu kan du ansluta till servern via vilken SFTP-klient som helst, till exempel genom FileZilla.
Totalt
- Nu vet du hur du skapar nya kataloger och konfigurerar virtuella värdar för dina webbplatser inom samma server.
- Du kan enkelt skapa de nödvändiga SSL-certifikaten - det är gratis, och de kommer att uppdateras automatiskt.
- Du kan enkelt arbeta med MySQL-databasen genom den välbekanta phpMyAdmin.
- Att skapa nya SFTP-konton och ställa in åtkomsträttigheter kräver inte mycket ansträngning. Sådana konton kan överföras till tredjeparts webbutvecklare och webbplatsadministratörer.
- Glöm inte att regelbundet uppdatera systemet, och vi rekommenderar också att du gör säkerhetskopior - i MCS kan du ta "snapshots" av hela systemet med ett klick och sedan, om nödvändigt, starta hela bilder.
Använda resurser som kan vara användbara:
Förresten,
Källa: will.com