Web na VPS: Nginx a HTTPS zdarma (Let's Encrypt)
Jak na VPS s Ubuntu nebo Debianem nainstalovat Nginx, nasměrovat doménu, spustit web a zdarma zapnout HTTPS certifikátem Let's Encrypt přes Certbot.
Chceš na VPS provozovat web nebo aplikaci s vlastní doménou a zámečkem v prohlížeči? Stačí Nginx a bezplatný certifikát od Let's Encrypt. Návod je pro Ubuntu a Debian, příkazy spouštíš jako root přes SSH.
1. Nasměruj doménu na VPS
U registrátora domény vytvoř A záznam, který ukazuje na IP adresu tvé VPS (najdeš ji v panelu v sekci Moje VPS):
example.cz A IP_TVÉ_VPS
www.example.cz A IP_TVÉ_VPS
Změna DNS se projeví obvykle během minut, někdy až za pár hodin. Ověříš ji příkazem ping example.cz.
2. Instalace Nginx
apt update
apt install -y nginx
systemctl enable --now nginx
Pokud používáš firewall ufw (viz zabezpečení VPS), povol web:
ufw allow 'Nginx Full'
Teď by na adrese http://example.cz měla být uvítací stránka Nginx.
3. Konfigurace webu
Vytvoř složku pro web a jednoduchou stránku:
mkdir -p /var/www/example.cz
echo '<h1>Funguje to!</h1>' > /var/www/example.cz/index.html
Vytvoř soubor /etc/nginx/sites-available/example.cz:
server {
listen 80;
listen [::]:80;
server_name example.cz www.example.cz;
root /var/www/example.cz;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Zapni ho a zkontroluj konfiguraci:
ln -s /etc/nginx/sites-available/example.cz /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
4. HTTPS zdarma přes Certbot
apt install -y certbot python3-certbot-nginx
certbot --nginx -d example.cz -d www.example.cz
Certbot se zeptá na e-mail (pro upozornění na expiraci), ověří doménu a sám upraví konfiguraci Nginx. Zvol přesměrování z HTTP na HTTPS. Certifikát platí 90 dní a obnovuje se automaticky – ověřit to můžeš příkazem:
certbot renew --dry-run
5. Aplikace na portu (Node.js, Python…)
Pokud tvoje aplikace běží třeba na portu 3000, nastav Nginx jako reverzní proxy – místo bloku location / výše použij:
location / {
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
Aplikace pak nemusí být vystavená do internetu napřímo – stačí, aby poslouchala na 127.0.0.1.
Časté problémy
- Certbot hlásí „Timeout during connect“ – doména ještě neukazuje na VPS, nebo je zavřený port 80 ve firewallu.
- 502 Bad Gateway – aplikace za proxy neběží nebo poslouchá na jiném portu.
- Změny se neprojeví – po úpravě konfigurace vždy
nginx -tasystemctl reload nginx.
Chceš jen jednoduchý web bez starostí o server? Podívej se na náš webhosting.
Pořád si nevíš rady? Rádi pomůžeme.