Deploy Website Statis di VPS dengan Nginx + SSL Gratis

28 Juli 2026

Mendeploy satu file HTML (index.html) ke VPS pakai Nginx itu gampang dan cepat. Tanpa berpanjang lebar, berikut langkah-langkahnya:

Langkah 1: Persiapan VPS & Nginx

1. Masuk ke VPS lewat SSH:

ssh root@ip_vps_kamu

💡 Login langsung sebagai root praktis untuk testing, tapi untuk VPS produksi lebih aman buat user baru dengan akses sudo, lalu login pakai user itu:

adduser nama_user
usermod -aG sudo nama_user
ssh nama_user@ip_vps_kamu

Semua command sudo di artikel ini tetap jalan sama saja, baik kamu login sebagai root maupun sebagai user biasa yang punya akses sudo.

2. Update sistem & install Nginx (kalau belum ada):

# Untuk Ubuntu/Debian
sudo apt update && sudo apt install nginx -y

3. Cek apakah Nginx sudah jalan:

sudo systemctl status nginx

Langkah 2: Taruh File index.html di VPS

Secara default, Nginx membaca file website dari direktori /var/www/.

1. Buat direktori baru untuk website kamu:

sudo mkdir -p /var/www/web-saya

2. Buat/edit file index.html:

sudo nano /var/www/web-saya/index.html

3. Tempel kode HTML + JavaScript kamu, contohnya:

<!DOCTYPE html>
<html lang="id">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Web Statis Saya</title>
</head>
<body>
    <h1>Halo dari VPS!</h1>
    <button id="btn">Klik Saya</button>
    <p id="output"></p>

    <script>
        document.getElementById('btn').addEventListener('click', () => {
            document.getElementById('output').innerText = 'JavaScript berjalan dengan baik!';
        });
    </script>
</body>
</html>

Tekan Ctrl + O lalu Enter untuk menyimpan, lalu Ctrl + X untuk keluar. 4. Atur hak akses direktorinya:

sudo chown -R www-data:www-data /var/www/web-saya
sudo chmod -R 755 /var/www/web-saya

Langkah 3: Konfigurasi Server Block Nginx

1. Buat file konfigurasi baru:

sudo nano /etc/nginx/sites-available/web-saya

2. Isi dengan konfigurasi berikut: (Ganti domainanda.com dengan domain kamu sendiri. Kalau belum punya domain, isi saja dengan alamat IP VPS.)

server {
    listen 80;
    server_name domainanda.com www.domainanda.com; # atau isi dengan IP_VPS jika tanpa domain

    root /var/www/web-saya;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

3. Aktifkan konfigurasinya dengan membuat symlink:

sudo ln -s /etc/nginx/sites-available/web-saya /etc/nginx/sites-enabled/

4. Opsional (kalau cuma pakai IP, tanpa domain): hapus konfigurasi default supaya tidak bentrok.

sudo rm /etc/nginx/sites-enabled/default

5. Cek konfigurasi Nginx-nya sudah benar atau belum:

sudo nginx -t

Kalau muncul syntax is ok dan test is successful, berarti konfigurasinya sudah benar dan kamu bisa lanjut ke langkah berikutnya. 6. Reload Nginx:

sudo systemctl reload nginx

Langkah 4: Atur Firewall (Kalau Ada)

Kalau VPS kamu pakai ufw, pastikan port HTTP-nya sudah dibuka:

sudo ufw allow 'Nginx Full'
# atau
sudo ufw allow 80/tcp

Selesai!

Buka browser, lalu akses http://ip_vps_kamu atau http://domainanda.com. Website statis beserta script JavaScript kamu langsung aktif!


Mau Tambah HTTPS/SSL Gratis? Bisa

Metode paling standar dan gratis 100% adalah pakai Let’s Encrypt lewat tool bernama Certbot.

Syarat utama: SSL tidak bisa dipasang langsung ke alamat IP mentah (misalnya 123.45.67.89). Kamu harus sudah punya domain (misalnya domainanda.com) yang A Record-nya sudah diarahkan ke IP VPS kamu.

Cara Mudah Pasang SSL Gratis (Nginx + Certbot)

1. Buka Port HTTPS di Firewall

Kalau di Langkah 4 kamu sudah menjalankan sudo ufw allow 'Nginx Full', port 443 otomatis sudah terbuka juga — lewati langkah ini.

Kalau waktu itu kamu cuma membuka 80/tcp, tambahkan port 443 sekarang:

sudo ufw allow 443/tcp
sudo ufw reload

2. Install Certbot

Install Certbot beserta plugin Nginx-nya di VPS (contoh untuk Ubuntu/Debian):

sudo apt update
sudo apt install certbot python3-certbot-nginx -y

3. Generate & Pasang SSL Otomatis

Jalankan perintah ini supaya Certbot mendeteksi domain dari konfigurasi Nginx dan otomatis memasang sertifikatnya:

sudo certbot --nginx -d domainanda.com -d www.domainanda.com

Prosesnya interaktif, ikuti langkah ini:

  1. Masukkan email kamu (buat notifikasi kalau ada masalah saat renewal).
  2. Tekan Y untuk menyetujui Terms of Service.
  3. Certbot akan memverifikasi domain kamu, mengunduh sertifikat SSL, lalu otomatis mengedit file konfigurasi Nginx supaya trafik dari http:// langsung diarahkan (redirect) ke https://.

Pembaruan Otomatis (Auto-Renew)

Sertifikat Let’s Encrypt berlaku 90 hari, tapi tenang saja — Certbot akan memperbarui sertifikat itu secara otomatis di latar belakang sebelum masa berlakunya habis.

Kamu bisa coba simulasikan dulu untuk memastikan fitur auto-renew ini berjalan lancar, dengan perintah:

sudo certbot renew --dry-run

Setelah itu, buka browser dan akses https://domainanda.com. Website kamu sekarang sudah aman dengan ikon gembok terpasang!