Lesson Detail

Install Nginx

Memasang web server yang akan menjadi reverse proxy untuk LMS.

7 minLesson Duration
1Materials
OpenStatus
This Lesson Progress0%
0/1 materials completed

Lesson Materials

This page now supports live lesson progress, per-material completion, and automatic current-lesson movement.

Live Lesson Progress

This lesson now tracks progress per material and updates the current lesson automatically.

Course Lesson Progress0%0 of 43 lessons completed
Course Material Progress0%0 of 43 materials completed
This Lesson0%0 of 1 materials completed
Material 1

Install Nginx

Open
HTML

Install Nginx

Setup awal Nginx untuk production.

Install Nginx

Setelah Node.js terinstall, langkah berikutnya adalah memasang Nginx. Dalam konteks LMS ini, Nginx akan menjadi web server yang menerima request dari browser, lalu nantinya meneruskan request tersebut ke aplikasi LMS yang berjalan di port internal.

Untuk pemula, bayangkan Nginx sebagai pintu depan website. Orang luar masuk dari browser ke Nginx, lalu Nginx meneruskan ke aplikasi kita di dalam server.

Untuk yang sudah lebih advance, Nginx di sini akan berperan sebagai web server dan reverse proxy untuk aplikasi Node.js / Next.js.

Kenapa perlu Nginx?

  • Membuka website ke publik dengan cara yang lebih standar.
  • Meneruskan request ke aplikasi LMS yang berjalan di port internal seperti 3000.
  • Memudahkan domain dan SSL di langkah berikutnya.
  • Lebih cocok untuk production mindset dibanding langsung mengekspos aplikasi Node.js ke internet.

Langkah 1: cek apakah Nginx sudah ada

Sebelum install, cek dulu apakah Nginx sudah terpasang:

nginx -v

Kalau Nginx sudah ada, biasanya akan muncul output seperti:

nginx version: nginx/1.18.0 (Ubuntu)

Kalau command tidak dikenali, berarti Nginx belum terinstall dan kita perlu memasangnya.

Langkah 2: install Nginx jika belum ada

Gunakan command berikut:

sudo apt install nginx -y

Kalau package belum ditemukan, refresh repository Ubuntu terlebih dahulu:

sudo apt update

Lalu jalankan lagi:

sudo apt install nginx -y

Langkah 3: verifikasi binary Nginx

Setelah install selesai, cek lagi:

nginx -v

Kalau versi muncul, berarti paket Nginx sudah terinstall dengan benar.

Langkah 4: cek status service Nginx

Karena Nginx adalah service sistem, kita juga perlu memeriksa apakah service-nya berhasil berjalan:

sudo systemctl status nginx

Kalau normal, biasanya akan terlihat status seperti:

Active: active (running)

Namun, pada kasus nyata di VPS, ada kemungkinan Nginx sudah terinstall tetapi gagal start.

Kasus nyata: Nginx terinstall, tetapi service gagal start

Contoh kasus yang bisa terjadi:

nginx -v
nginx version: nginx/1.18.0 (Ubuntu)

Tetapi saat dicek:

sudo systemctl status nginx

Muncul indikasi seperti:

Active: failed (Result: exit-code)

Kalau ini terjadi, artinya masalahnya bukan di instalasi paket, tetapi biasanya di konfigurasi atau port bentrok dengan service lain.

Langkah diagnosis yang disarankan

Untuk melihat apakah port HTTP/HTTPS sedang dipakai service lain, jalankan:

sudo ss -tulpn | grep ':80\|:443'

Kalau pada output terlihat Apache2 memakai port 80, misalnya seperti ini:

tcp   LISTEN 0      128      0.0.0.0:80      0.0.0.0:*    users:(("apache2",pid=4497,fd=3),("apache2",pid=4495,fd=3))

Artinya, Apache2 sedang aktif dan sudah mengambil port 80, sehingga Nginx gagal start karena tidak bisa memakai port yang sama.

Sebelum start ulang Nginx, cek juga syntax konfigurasi Nginx:

sudo nginx -t

Kalau output menunjukkan syntax OK, maka fokus masalahnya memang biasanya bentrok port.

Resolusi kasus: Apache2 memakai port 80

Kalau memang ingin memakai Nginx sebagai web server utama untuk LMS ini, maka Apache2 perlu dihentikan dan dinonaktifkan.

Gunakan alur berikut:

sudo ss -tulpn | grep ':80\|:443'

sudo nginx -t

sudo systemctl stop apache2
sudo systemctl disable apache2
sudo systemctl start nginx
sudo systemctl status nginx

Setelah itu, cek lagi status Nginx. Kalau berhasil, status biasanya berubah menjadi active (running).

Apa fungsi Apache2 yang di-disable itu?

Apache2 adalah web server, sama seperti Nginx. Fungsinya juga bisa melayani website, menerima request HTTP, dan menampilkan aplikasi ke internet.

Masalahnya, dalam satu server, dua web server tidak bisa memakai port publik yang sama secara bersamaan, misalnya sama-sama ingin memakai port 80.

Jadi saat Apache2 di-disable dalam lesson ini, maksudnya adalah kita memilih Nginx sebagai web server utama agar tidak bentrok.

Apa dampaknya jika Apache2 di-disable?

  • Website atau service yang sebelumnya dilayani Apache2 akan berhenti dilayani oleh Apache2.
  • Port 80 menjadi kosong sehingga bisa dipakai Nginx.
  • Tidak ada dampak negatif untuk LMS ini selama memang kita memilih Nginx sebagai web server utama.
  • Kalau server masih dipakai untuk website lain yang bergantung pada Apache2, maka website tersebut bisa ikut terganggu. Karena itu, pastikan Apache2 memang tidak sedang dipakai untuk kebutuhan lain.

Dalam flow course ini, kita memang sedang membangun stack deployment berbasis Nginx + Node.js, jadi menonaktifkan Apache2 adalah langkah yang wajar bila Apache2 hanya menjadi pengganggu port.

Versi video

Kalau ingin melihat panduan pendamping dalam bentuk video, gunakan link berikut:

Tonton video pendamping lesson Install Nginx

Catatan course: fokus lesson ini bukan hanya install Nginx, tetapi juga memahami cara memeriksa status, mendeteksi konflik port, dan menyelesaikan kasus nyata saat Nginx gagal start karena Apache2 sudah lebih dulu memakai port 80.

Kesimpulan lesson ini

Nginx adalah bagian penting dari deployment LMS di VPS. Yang perlu kita pelajari bukan hanya cara menginstallnya, tetapi juga cara melihat statusnya, cara menguji konfigurasinya, dan cara menyelesaikan konflik port bila ada web server lain seperti Apache2 yang sudah aktif lebih dulu.

Dengan begitu, kita tidak hanya berhasil install, tetapi juga benar-benar mengerti kenapa service bisa gagal start dan bagaimana cara memulihkannya.