Skip to content

Instantly share code, notes, and snippets.

@otnansirk
Created July 29, 2025 07:13
Show Gist options
  • Save otnansirk/1dfaa0cc81bd4f638ad1203ab3907970 to your computer and use it in GitHub Desktop.
Save otnansirk/1dfaa0cc81bd4f638ad1203ab3907970 to your computer and use it in GitHub Desktop.
Setup Domain di NGINX Ubuntu (Port 8000 + SSL Let's Encrypt) - Ubuntu

πŸš€ Setup Domain di NGINX Ubuntu (Port 8000 + SSL Let's Encrypt)

βœ… Asumsi

  • Domain: namadomain.com
  • VPS: Ubuntu
  • Aplikasi berjalan di port 8000
  • Domain sudah diarahkan ke IP VPS
  • Mau pakai NGINX sebagai reverse proxy
  • Mau SSL gratis dari Let's Encrypt

🧱 1. Install NGINX & Certbot

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

πŸ›  2. Buat Konfigurasi NGINX

sudo nano /etc/nginx/sites-available/namadomain.com

Isi dengan:

server {
    listen 80;
    server_name namadomain.com www.namadomain.com;

    location / {
        proxy_pass http://localhost:8000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

πŸ”— 3. Aktifkan Konfigurasi

sudo ln -s /etc/nginx/sites-available/namadomain.com /etc/nginx/sites-enabled/

βœ… 4. Cek dan Reload NGINX

sudo nginx -t
sudo systemctl reload nginx

πŸ”’ 5. Pasang SSL dari Let's Encrypt

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

Saat ditanya, pilih opsi Redirect agar otomatis HTTPS


🌐 6. Akses Domain

Buka di browser:

https://namadomain.com

Kalau aplikasi muncul β†’ πŸŽ‰ Berhasil!


πŸ” 7. (Opsional) Cek Auto-Renew SSL

Cek jadwal certbot:

sudo systemctl list-timers | grep certbot

Tes renew manual:

sudo certbot renew --dry-run

🧠 Tips Tambahan

  • Ganti namadomain.com sesuai domain asli Baginda
  • Kalau mau redirect dari www ke non-www, atau setup subdomain ke port lain, tinggal tambah server block baru
@otnansirk
Copy link
Author

Tambahkan ini jika ingin redirect ke non www dan sebagainya

server {
    listen 80;
    server_name www.namadomain.com;

    return 301 http://namadomain.com$request_uri;
}

# Redirect HTTP non-www to HTTPS
server {
    listen 80;
    server_name namadomain.com;

    return 301 https://namadomain.com$request_uri;
}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment