Sebagian besar aplikasi swa-inang mendengarkan pada port lokal seperti 127.0.0.1:3000 dan berbicara HTTP polos. Sebuah reverse proxy berdiri di depan pada port 80/443, mengakhiri HTTPS dengan sertifikat sungguhan, dan meneruskan lalu lintas ke port lokal itu — memberi Anda https://app.yourdomain.com yang rapi dan memungkinkan menjalankan beberapa aplikasi di balik satu IP. Berikut kedua cara yang umum.
Prasyarat
- Sebuah domain dengan record A yang menunjuk ke IP server Anda (tunggu propagasi DNS).
- Port 80 dan 443 terbuka — lihat cara menyiapkan firewall UFW.
- Aplikasi Anda berjalan secara lokal, misalnya pada
127.0.0.1:3000.
Opsi A — Caddy (HTTPS otomatis, satu baris)
sudo apt install -y caddy
echo 'app.yourdomain.com { reverse_proxy 127.0.0.1:3000 }' | sudo tee /etc/caddy/Caddyfile
sudo systemctl restart caddy
Itu saja — Caddy mengambil sertifikat Let's Encrypt untuk domain dan memperbaruinya otomatis.
Opsi B — nginx + Certbot
sudo apt install -y nginx certbot python3-certbot-nginx
Buat /etc/nginx/sites-available/app:
server {
listen 80;
server_name app.yourdomain.com;
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;
}
}
Aktifkan dan tambahkan HTTPS:
sudo ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d app.yourdomain.com
Certbot menyunting konfigurasi untuk menyajikan HTTPS dan menyiapkan pembaruan otomatis.
Peringatan jujur
- DNS dan port adalah kegagalan yang lazim. Record A harus menunjuk ke sini dan sudah tersebar, dan 80/443 dapat dijangkau, kalau tidak penerbitan sertifikat gagal. Kedua alat mencoba lagi begitu itu diperbaiki.
- Ekspos hanya yang Anda maksudkan. Jaga aplikasi terikat ke
127.0.0.1agar hanya dapat dijangkau lewat proxy, bukan langsung. - HTTPS butuh domain, bukan IP telanjang — Let's Encrypt menerbitkan untuk nama.
Langkah berikutnya
Reverse proxy adalah hal yang memungkinkan satu server menyajikan banyak hal — lihat swa-inang beberapa layanan di balik satu IP. Menjalankan aplikasi dalam kontainer? Mulai dari cara memasang Docker. Agar aplikasi itu sendiri bertahan melewati restart dan crash, lihat cara membuat layanan systemd.
Komentar
Belum ada komentar. Jadilah yang pertama.