VPS vadovai ir instrukcijos žingsnis po žingsnio

Paruoškite serverį dar šį vakarą — kopijuokite komandas iš eilės, nuo pirmo prisijungimo iki svetainės su HTTPS

Ką rasite vadovuose

VPS paruošimas užtrunka apie trisdešimt minučių ir apima aštuonis žingsnius: įdiekite operacinę sistemą iš atvaizdo, prisijunkite per SSH, sukurkite naudotoją su sudo, perjunkite prisijungimą į raktą, uždarykite visus nenaudojamus prievadus, įdiekite tinklo serverį ir duomenų bazę, išduokite TLS sertifikatą ir padarykite pirmą atsarginę kopiją. Šiame puslapyje visi aštuoni aprašyti su tiksliomis komandomis Ubuntu 22.04 ir 24.04 bei Debian 12 sistemoms, kartu su tuo, ką daryti, kai žingsnis nepavyksta. Niekas čia nėra pririšta prie vieno tiekėjo — tos pačios komandos veikia bet kuriame serveryje, kuriame turite root.

Aštuoni žingsniai su komandomis

Vykdykite juos tokia tvarka ką tik įdiegtame Ubuntu arba Debian serveryje.

  • 1 žingsnis · Prieiga

    Prisijunkite per SSH

    Naują serverį pasiekiate pagal jo IP adresą ir kartu išduotą slaptažodį: ssh [email protected] iš terminalo Linux, macOS arba Windows 10 ir naujesnėje sistemoje. Jei ryšys nutrūksta laukiant, serveris dar nepasileido arba priešais jį esanti ugniasienė blokuoja 22 prievadą — patikrinkite per KVM konsolę skydelyje. Pirmiausia po prisijungimo pakeiskite pradinį slaptažodį komanda passwd.

  • 2 žingsnis · Naudotojai

    Sukurkite naudotoją su sudo ir nustokite naudoti root

    Kasdienis darbas kaip root kiekvieną rašybos klaidą paverčia gedimu. Sukurkite paprastą paskyrą ir suteikite jai administratoriaus teises: adduser deploy, tada usermod -aG sudo deploy. Atsijunkite, prisijunkite naujuoju naudotoju ir patikrinkite teises komanda sudo whoami — atsakymas turi būti root. Debian sistemoje pirma įdiekite sudo komanda apt install sudo.

  • 3 žingsnis · Raktai

    Perjunkite SSH prisijungimą į raktą

    Raktas panaikina visą slaptažodžių spėliojimo atakų klasę. Savo kompiuteryje paleiskite ssh-keygen -t ed25519, tada nukopijuokite viešąją dalį į serverį komanda ssh-copy-id [email protected]. Įsitikinkite, kad prisijungimas raktu veikia, tada atverkite /etc/ssh/sshd_config, nustatykite PasswordAuthentication no ir PermitRootLogin no bei pritaikykite komanda systemctl restart ssh. Kol testuojate naują sesiją, senos neuždarykite.

  • 4 žingsnis · Atnaujinimai

    Atnaujinkite sistemą ir įjunkite saugos pataisas

    Ką tik įdiegtą atvaizdą atnaujinkite komanda sudo apt update && sudo apt full-upgrade ir perkraukite, jei atsiranda failas /var/run/reboot-required. Tada leiskite serveriui lopytis pačiam: sudo apt install unattended-upgrades, po to sudo dpkg-reconfigure --priority=low unattended-upgrades. Saugos atnaujinimai atkeliaus be jūsų, o įprasti paketų atnaujinimai liks jūsų kontrolėje.

  • 5 žingsnis · Ugniasienė

    Uždarykite visus nenaudojamus prievadus

    Leiskite SSH prieš įjungdami ugniasienę, kitaip užsirakinsite: sudo ufw allow OpenSSH, tada tinklo serveriui sudo ufw allow 80/tcp ir sudo ufw allow 443/tcp, ir galiausiai sudo ufw enable. Rezultatą patikrinkite komanda sudo ufw status numbered, o komanda ss -tulpn parodys, kas iš tikrųjų klauso. Jei kuri nors taisyklė vis dėlto jus užrakino, per KVM konsolę patenkate vidun.

  • 6 žingsnis · Tinklo serveris

    Įdiekite Nginx ir PHP

    Įdiekite rinkinį komanda sudo apt install nginx php-fpm php-mysql ir paleiskite jį komanda sudo systemctl enable --now nginx; numatytasis puslapis turi atsakyti serverio IP adresu. Svetainės konfigūraciją įrašykite į /etc/nginx/sites-available/example.com, įjunkite ją sukurdami nuorodą į /etc/nginx/sites-enabled/, patikrinkite sintaksę komanda sudo nginx -t ir pritaikykite komanda sudo systemctl reload nginx. Svetainės failai paprastai guli /var/www/example.com.

  • 7 žingsnis · Duomenų bazė ir TLS

    Pridėkite duomenų bazę ir sertifikatą

    Duomenų bazei: sudo apt install mariadb-server, tada sudo mysql_secure_installation — ji nustato root slaptažodį ir pašalina anonimines testines paskyras. HTTPS reikia, kad domenas jau rodytų į serverį A įrašu: sudo apt install certbot python3-certbot-nginx, tada sudo certbot --nginx -d example.com -d www.example.com. Pratęsimas vyksta iš systemd laikmačio, todėl niekas netikėtai nepasibaigia.

  • 8 žingsnis · Atsarginės kopijos

    Padarykite pirmą kopiją, kol jos dar neprireikė

    Automatinės atsarginės kopijos į planą neįeina — kopijas darote patys valdymo skydelyje, kopijų skiltyje, per porą paspaudimų ir nieko iš anksto nekonfigūruodami. Be to, laikykite ir duomenų lygio kopiją: mysqldump -u root -p appdb > /root/appdb.sql duomenų bazei ir tar -czf /root/site.tar.gz /var/www/example.com failams. Bent vieną kopiją laikykite ne serveryje.

Komandos parašytos Ubuntu 22.04 ir 24.04 bei Debian 12 sistemoms. Pakeiskite 203.0.113.10, example.com ir appdb savo reikšmėmis.

Pasirinkite kelią pagal savo serverį

Komandos ir konfigūracijos failų vietos skiriasi tarp sistemų — pradėkite nuo teisingos.

1

Linux: Ubuntu ir Debian

Šio puslapio komandos skirtos Ubuntu 22.04 ir 24.04; Debian 12 jos identiškos, skiriasi tik paketų versijos. Prieiga vyksta per SSH, o prisijungimą raktu verta naudoti nuo pirmos dienos.

2

Windows Server

Kitas įrankių rinkinys: vietoj SSH — nuotolinis darbalaukis, vietoj apt — Server Manager ir PowerShell, vietoj ufw — įtaisyta ugniasienė. Prieiga vis tiek prasideda nuo KVM konsolės.

3

Nėra laiko daryti pačiam

Tą patį darbą galima perduoti: pradinis paruošimas, atnaujinimai, stebėsena ir incidentų valdymas ateina valandų paketais Mini, Pro ir Max.

Pirma valanda po užsakymo

Kas vyksta tarp užsakymo ir veikiančio serverio.

1

Pasirinkite atvaizdą ir įdiekite OS

Atvaizdą renkatės skydelyje ir diegimą paleidžiate patys — Ubuntu, Debian arba Windows Server. Sistemos už jus niekas nediegia, todėl tiksliai žinote, kas yra serveryje ir kokius paketus jis turi.

2

Atverkite KVM konsolę

KVM suteikia serverio ekraną ir klaviatūrą aparatinės įrangos lygiu: ji veikia dar neįsijungus tinklui ir lieka pasiekiama, kai SSH ar ugniasienė sukonfigūruoti neteisingai. Atverkite ją kartą pačioje pradžioje, kad žinotumėte, kur ji yra, kai prireiks.

3

Prisijunkite, sustiprinkite, atnaujinkite

Aukščiau esantys 1–5 žingsniai užtrunka apie penkiolika minučių: sudo naudotojas, prisijungimas raktu, ufw su atvirais tik SSH, HTTP ir HTTPS, ir automatiniai saugos atnaujinimai. Padarykite tai prieš atverdami ką nors internetui.

4

Įdiekite tai, dėl ko atėjote

Tinklo serverį, duomenų bazę, konteinerių aplinką ar programą. VPS ir debesų serveriai prieš mokėjimą 5 valandas veikia bandomuoju režimu, o to pakanka rinkiniui įdiegti ir tikram krūviui paleisti.

Kai kas nors nukrypsta nuo scenarijaus

Kai kas nors nukrypsta nuo scenarijaus

Įprastos aklavietės ir išeitis iš jų.

Atverkite KVM konsolę skydelyje — ji nepriklauso nuo tinklo. Prisijunkite ten ir paleiskite sudo ufw allow OpenSSH arba sudo ufw disable, kad viską laikinai atvertumėte, kol taisote taisykles.

Devyniais atvejais iš dešimties kaltos failų teisės: namų katalogas neturi būti rašomas grupei, .ssh turi būti 700, o .ssh/authorized_keys — 600, abu priklausantys naudotojui. Paleiskite ssh -v, kad pamatytumėte, kokį raktą klientas iš tikrųjų siūlo, o priežastį parodys sudo journalctl -u ssh.

Pirmiausia paleiskite sudo nginx -t — ji nurodo sugadintos direktyvos failą ir eilutę. Jei konfigūracija tvarkinga, paprastai užimtas prievadas: sudo ss -tulpn parodo, kas jau klauso 80 ar 443, o sudo journalctl -u nginx -n 50 parodo patį gedimą.

Patikrinkite tris įprastus įtariamuosius iš eilės: free -m atminčiai ir swap, df -h pilnam diskui ir top procesui, valgančiam procesorių. Šimtu procentų pilnas diskas verčia serverį atrodyti mirusiu, nors jis visiškai sveikas.

Vienam serveriui formalaus SLA neteikiame. Pasiekiamumo reikalavimams statome paskirstytą atsparų gedimams klasterį keliuose duomenų centruose, kad vieno mazgo gedimas nenuverstų paslaugos.

Veikiančios svetainės perkėlimas į naują serverį

Veikiančios svetainės perkėlimas į naują serverį

Perkėlimas vyksta griežta tvarka, ir DNS dalis eina pirma: dieną prieš perkėlimą sumažinkite A įrašo TTL iki 300 sekundžių, kad perjungimas pasklistų per minutes, o ne valandas.

Tada nukopijuokite failus komanda rsync -avz /var/www/ deploy@NAUJAS-IP:/var/www/, padarykite duomenų bazės kopiją komanda mysqldump ir įkelkite ją naujoje mašinoje komanda mysql -u root -p appdb < appdb.sql. Pakelkite svetainę naujame serveryje ir išbandykite ją pagal IP dar neliesdami DNS. Tik tada, kai ji atsako teisingai, nukreipkite A įrašą į naują adresą, o seną serverį palikite veikti dar dieną kitą.

Jei nenorite daryti rankomis, projektą perkelsime už jus arba perimsime visą serverį pagal serverių administravimą.

Perkėlimo paslauga

Dažnai užduodami klausimai

Neradote atsakymo?
Parašykite mums kontaktų puslapyje.

Per SSH, naudojant serverio IP ir kartu išduotą slaptažodį: ssh root@jusu-serverio-ip iš bet kurio terminalo Linux, macOS arba Windows 10 ir naujesnėje sistemoje. Jei SSH neatsako, per skydelyje esančią KVM konsolę patenkate vidun nepriklausomai nuo tinklo konfigūracijos.

Nuo sustiprinimo, tokia tvarka: sukurkite naudotoją su sudo, perjunkite prisijungimą į SSH raktą, įjunkite ufw ugniasienę su atvirais tik SSH, HTTP ir HTTPS, ir įjunkite automatinius saugos atnaujinimus. Tik tada diekite programų rinkinį.

Tai prieiga prie serverio aparatinės įrangos lygiu: OS diegimas ir perdiegimas, darbas dar neįsijungus tinklui ir avarinė prieiga, kai SSH nepasiekiamas arba ugniasienė jus užrakino.

Su ufw: sudo ufw allow 443/tcp atveria prievadą, sudo ufw status numbered parodo galiojančias taisykles, o sudo ufw delete pašalina vieną pagal numerį. Visada leiskite OpenSSH prieš paleisdami sudo ufw enable.

Automatinės kopijos į planą neįeina. Kopijas darote patys valdymo skydelyje, kopijų skiltyje, per porą paspaudimų — o duomenims verta pridėti mysqldump duomenų bazei ir tar svetainės failams, laikant juos ne serveryje.

Taip. VPS ir debesų serveriai 5 valandas veikia bandomuoju režimu, todėl galite įdiegti savo rinkinį ir paleisti tikrą krūvį prieš apsispręsdami. Skirtinis serveris skiriamas po apmokėjimo; palaikymas padeda parinkti konfigūraciją iš anksto.

Taip. Jie parašyti standartinėms Ubuntu, Debian ir Windows Server sistemoms ir nepriklauso nuo to, kur veikia serveris. Tos pačios komandos veikia visur, kur turite root prieigą.

Taip. Parašykite per kontaktų formą ir pridėkite komandos, ties kuria sustojote, išvestį — patarsime jūsų paslaugos apimtyje.