VPS servery

Více webů a aplikací na jedné VPS (Nginx)

Jak na jedné VPS provozovat několik domén a aplikací za Nginx jako reverse proxy, každou s HTTPS.

2 min čtení·Aktualizováno 28. října 2026

Na jedné VPS může běžet víc webů a aplikací najednou. Nginx naslouchá na portech 80 a 443 a podle domény pošle návštěvníka na správný web nebo aplikaci (reverse proxy). Nginx a Certbot nainstaluj podle návodu Web na VPS: Nginx a HTTPS.

1. Domény a porty

  • Pro každou doménu i subdoménu vytvoř u správce domény A záznam na IP VPS (např. web.cz, app.web.cz).
  • Každá aplikace má vlastní port (3000, 3001…) a poslouchá jen na 127.0.0.1. Zvenku se k ní dostane jen přes Nginx, takže porty aplikací ve firewallu neotevíráš.

2. Konfigurace pro aplikaci

Statický web nastavíš stejně jako v návodu Web na VPS. Pro aplikaci vytvoř /etc/nginx/sites-available/app.web.cz:

server {
    listen 80;
    listen [::]:80;
    server_name app.web.cz;
    client_max_body_size 20m;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        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;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }
}

Řádky Upgrade a Connection jsou kvůli WebSocketům (chat, živé přehledy). Proměnnou $connection_upgrade nadefinuj jednou pro všechny weby v /etc/nginx/conf.d/websocket.conf:

map $http_upgrade $connection_upgrade {
    default upgrade;
    ''      close;
}

3. Zapnutí a HTTPS

ln -s /etc/nginx/sites-available/app.web.cz /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
certbot --nginx -d app.web.cz

Certbot spusť pro každou novou doménu. Certifikáty se pak obnovují samy.

Když něco nefunguje

PříznakPříčina
Na doméně je jiný webpřeklep v server_name, nebo chybí odkaz v sites-enabled
502 Bad Gatewayaplikace neběží nebo je na jiném portu – zkontroluj ss -tlnp
413 Request Entity Too Largezvyš client_max_body_size
Aplikace generuje odkazy s http místo httpszapni v ní důvěru k proxy (v Expressu app.set('trust proxy', 1))

Chyby Nginx najdeš v /var/log/nginx/error.log. Aplikace udržíš spuštěné přes PM2 nebo službu systemd.

VPS od 299 Kč měsíčně

Vlastní virtuální server s root přístupem pro cokoliv, co potřebujete.

Zobrazit balíčky