VPS Tallinnas ise seadistada: Ubuntu + Nginx + SSL 30 minutiga
Tehniline juhend VPS-serveri seadistamiseks nullist. SSH, Ubuntu uuendamine, Nginx, Let's Encrypt SSL, tulemyuyur ja Docker — samm-sammult arendajatele.
Kellele see juhend?
See juhend on mooneldud arendajatele ja tehnilistele kasutajatele, kes soovivad seadistada VPS-serveri ise, ilma halduspaneelita. Kui eelistad cPanelit voi Pleski, siis see juhend pole sinu jaoks — vali jagatud majutus voi hallatav VPS.
Kasutame naeitena VPS-serverit Tallinna andmekeskuses (is*hosting, 4VPS voi THE.Hosting), Ubuntu 24.04 operatsiooonisuusteemi ja Nginx veebiiserverit.
Eeldused
- VPS-server on ostetud ja sisse lylitatud
- Sul on root-juurdepaaes (IP-aadress, kasutajanimi, parool)
- Domeen on registreeritud ja DNS A-kirje viitab serveri IP-le
- Arvutis on SSH-klient (Terminal Macil/Linuxil, PuTTY voi Windows Terminal Windowsil)
Samm 1: SSH yhenduse loomine
Yhenda serveriga SSH kaudu:
ssh root@SINU_SERVERI_IP
Esimesel yhendamisel kyysitakse, kas usaldad serverit — kirjuta yes. Seejaerel sisesta parool.
Turvaomadused: loo eraldi kasutaja
Root-kasutajana toootamine on turvarisk. Loome eraldi kasutaja:
adduser deploy
usermod -aG sudo deploy
Nyyyd saad sisse logida: ssh deploy@SINU_SERVERI_IP
SSH-vootme seadistamine (soovituslik)
Parooli asemel on turvalisem kasutada SSH-vootmit:
# Oma arvutis:
ssh-keygen -t ed25519 -C "minu-vps"
ssh-copy-id deploy@SINU_SERVERI_IP
Paarast seda saad sisse logida ilma paroolita.
Samm 2: Ubuntu uuendamine
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git unzip software-properties-common
See uuendab koik paketid ja paigaldab pohilised tooriistad.
Samm 3: Nginx paigaldamine
Nginx on kerge ja kiire veebiserver, mis on ideaalne VPS-i jaoks.
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
Kontrolli, kas toootab:
sudo systemctl status nginx
Ava brauser ja mine http://SINU_SERVERI_IP — peaksid naagema Nginx vaikimisi lehte.
Serveri ploki (server block) seadistamine
Loo konfiguratsioonifail oma domeeni jaoks:
sudo nano /etc/nginx/sites-available/sinu-domeen.ee
Sisu:
server {
listen 80;
server_name sinu-domeen.ee www.sinu-domeen.ee;
root /var/www/sinu-domeen.ee/html;
index index.html index.php;
location / {
try_files $uri $uri/ =404;
}
}
Aktiveeri sait:
sudo ln -s /etc/nginx/sites-available/sinu-domeen.ee /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Loo veebilehe kaust ja testfail:
sudo mkdir -p /var/www/sinu-domeen.ee/html
echo '<h1>Tere tulemast!</h1>' | sudo tee /var/www/sinu-domeen.ee/html/index.html
sudo chown -R www-data:www-data /var/www/sinu-domeen.ee
Samm 4: Let's Encrypt SSL sertifikaat
SSL on kohustuslik — ilma selleta naeitab brauser "Ei ole turvaline" hoiatust ja Google karistab sind otsingutulemustes.
Certboti paigaldamine:
sudo apt install -y certbot python3-certbot-nginx
Sertifikaadi hankimine:
sudo certbot --nginx -d sinu-domeen.ee -d www.sinu-domeen.ee
Certbot kyysib sinu e-posti aadressi ja noousolekut tingimustega. Seejaerel:
- Hangib sertifikaadi automaatselt
- Seadistab Nginx HTTPS-i jaoks
- Seadistab HTTP -> HTTPS suunamise
Automaatne uuendamine:
Let's Encrypt sertifikaadid kehtivad 90 paaeva. Certbot seadistab automaatse uuendamise, kuid kontrolli:
sudo certbot renew --dry-run
Samm 5: Tulemyuyur (UFW)
UFW (Uncomplicated Firewall) kaitseb serverit soovimatute yhenduste eest.
sudo ufw allow OpenSSH
sudo ufw allow 'Nginx Full'
sudo ufw enable
sudo ufw status
See lubab ainult SSH (port 22) ja veebiserveri (pordid 80 ja 443) yhendused. Koik muu on blokeeritud.
Lisaturvalisus — Fail2Ban:
sudo apt install -y fail2ban
sudo systemctl enable fail2ban
Fail2Ban blokeerib automaatselt IP-d, mis yyritavad liiga palju ebaonnestunud sisselogimisi.
Samm 6: PHP paigaldamine (valikuline)
Kui vajad PHP-d (WordPress, Laravel jms):
sudo apt install -y php8.3-fpm php8.3-mysql php8.3-mbstring php8.3-xml php8.3-curl php8.3-zip php8.3-gd
Nginxi PHP-konfiguratsioon:
location ~ .php$ {
fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Samm 7: Docker (valikuline)
Docker voimaldab rakendusi kaeivitada isoleeritud konteinerites.
Paigaldamine:
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker deploy
Docker Compose:
sudo apt install -y docker-compose-plugin
Naeidis — WordPress Dockeris:
# docker-compose.yml
services:
wordpress:
image: wordpress:latest
ports:
- "8080:80"
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_PASSWORD: salajane_parool
db:
image: mysql:8.0
environment:
MYSQL_ROOT_PASSWORD: salajane_parool
Kaeivita: docker compose up -d
Samm 8: Seire ja hooldus
Serveri seire:
- htop — reaalajas ressursside jaalgimine:
sudo apt install -y htop - df -h — kettaruumi kontroll
- free -m — maalu kasutus
- journalctl -xe — suusteemi logid
Automaatsed turvapaigad:
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
See paigaldab turvapaigad automaatselt.
Varukoopiad:
Seadista automaatne varukoopia cron-jobiga:
# Igaohtune varukoopia kl 3:00
0 3 * * * tar -czf /backup/veebileht-$(date +\%Y\%m\%d).tar.gz /var/www/
Kokkuvote
VPS-serveri seadistamine Tallinnas on voimalik 30 minutiga, kui jargid neid samme: SSH yhendus, Ubuntu uuendamine, Nginx paigaldamine, Let's Encrypt SSL, UFW tulemyyur ja valikuliselt PHP voi Docker. Tulemuseks on kiire, turvaline ja taiuslikult sinu kontrolli all olev server. Igakuine kulu: 3-16 EUR solltuvalt VPS-plaanist.