VPS Tallinnas ise seadistada: Ubuntu + Nginx + SSL 30 minutiga
Tehniline juhend VPS-serveri seadistamiseks nullist: SSH, Ubuntu uuendamine, Nginx, Let's Encrypt SSL, tulemüür ja Docker — samm-sammult arendajatele.
Kellele see juhend on?
Juhend on mõeldud arendajatele ja tehnilistele kasutajatele, kes tahavad VPS-serveri ise seadistada, ilma halduspaneelita. Kui eelistad cPanelit või Pleski, vali jagatud majutus või hallatud VPS.
Näitena kasutame VPS-i Tallinnas (nt is*hosting, alates 5.94 $ kuus), Ubuntu 24.04 operatsioonisüsteemi ja Nginxi veebiserverit. Samad sammud sobivad ka Helsingi serverile (nt Hetzner CX23, 5.99 € kuus ilma KM-ta).
Eeldused
- VPS on ostetud ja käivitatud
- Sul on root-ligipääs (IP-aadress, kasutajanimi, parool)
- Domeen on registreeritud ja DNS-i A-kirje viitab serveri IP-le
- Arvutis on SSH-klient (Terminal Macis/Linuxis, Windows Terminal või PuTTY Windowsis)
Samm 1: SSH-ühendus
Ühenda serveriga SSH kaudu:
ssh root@SINU_SERVERI_IP
Esimesel ühendamisel küsitakse, kas usaldad serverit — kirjuta yes ja sisesta parool.
Loo eraldi kasutaja
Root-kasutajana töötamine on turvarisk. Loome eraldi kasutaja:
adduser deploy
usermod -aG sudo deploy
Nüüd saad sisse logida: ssh deploy@SINU_SERVERI_IP
SSH-võti (soovituslik)
Parooli asemel on turvalisem kasutada SSH-võtit:
# Oma arvutis:
ssh-keygen -t ed25519 -C "minu-vps"
ssh-copy-id deploy@SINU_SERVERI_IP
Pärast seda saad sisse logida ilma paroolita.
Samm 2: Uuenda Ubuntu
sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget git unzip software-properties-common
See uuendab kõik paketid ja paigaldab põhitööriistad.
Samm 3: Paigalda Nginx
Nginx on kerge ja kiire veebiserver, mis sobib VPS-ile hästi.
sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
Kontrolli, kas töötab:
sudo systemctl status nginx
Ava brauseris http://SINU_SERVERI_IP — peaksid nägema Nginxi vaikelehte.
Serveriplokk (server block)
Loo oma domeeni konfiguratsioonifail:
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 saidi 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 Encrypti SSL-sertifikaat
SSL on kohustuslik — ilma selleta näitab brauser hoiatust "Ei ole turvaline".
Paigalda Certbot
sudo apt install -y certbot python3-certbot-nginx
Küsi sertifikaat
sudo certbot --nginx -d sinu-domeen.ee -d www.sinu-domeen.ee
Certbot küsib e-posti aadressi ja nõusolekut tingimustega. Seejärel:
- hangib sertifikaadi automaatselt
- seadistab Nginxi HTTPS-i jaoks
- seadistab HTTP → HTTPS suunamise
Automaatne uuendamine
Let's Encrypti sertifikaadid kehtivad 90 päeva. Certbot seadistab automaatse uuendamise; kontrolli:
sudo certbot renew --dry-run
Samm 5: Tulemüür (UFW)
UFW kaitseb serverit soovimatute ühenduste 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) ühendused, kõik muu on blokeeritud.
Lisaturvalisus: Fail2Ban
sudo apt install -y fail2ban
sudo systemctl enable fail2ban
Fail2Ban blokeerib automaatselt IP-d, mis teevad liiga palju ebaõnnestunud sisselogimiskatseid.
Samm 6: PHP (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-plokk:
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 võimaldab käivitada rakendusi eraldatud konteinerites.
Paigaldus
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker deploy
Docker Compose
sudo apt install -y docker-compose-plugin
Näide: 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
Käivita: docker compose up -d
Samm 8: Seire ja hooldus
Serveri seire
- htop — ressursid reaalajas:
sudo apt install -y htop - df -h — kettaruum
- free -m — mälu kasutus
- journalctl -xe — süsteemi logid
Automaatsed turvauuendused
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades
Varukoopiad
Automaatne varukoopia cron-tööga:
# Iga öö kell 3:00
0 3 * * * tar -czf /backup/veebileht-$(date +\%Y\%m\%d).tar.gz /var/www/
Hoia varukoopiat ka väljaspool serverit (teine server või objektisalvestus) — kui server kaob, kaob muidu ka varukoopia.
Kokkuvõte
VPS-i seadistamine võtab nende sammudega umbes 30 minutit: SSH-ühendus, Ubuntu uuendamine, Nginx, Let's Encrypti SSL, UFW tulemüür ning vajadusel PHP või Docker. Tulemuseks on kiire, turvaline ja täielikult sinu kontrolli all olev server. Kuukulu algab umbes 5–6 €-st (dollarist) väikese VPS-i puhul.