Deploy Website Statis di VPS dengan Nginx + SSL Gratis
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
rootpraktis 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_kamuSemua command
sudodi artikel ini tetap jalan sama saja, baik kamu login sebagairootmaupun 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 (misalnyadomainanda.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:
- Masukkan email kamu (buat notifikasi kalau ada masalah saat renewal).
- Tekan
Yuntuk menyetujui Terms of Service. - Certbot akan memverifikasi domain kamu, mengunduh sertifikat SSL, lalu otomatis mengedit file konfigurasi Nginx supaya trafik dari
http://langsung diarahkan (redirect) kehttps://.
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!