Web Server Nginx: Mengenal Cara Kerja dan Kelebihannya untuk Website

Ketika membahas web server, nama Apache mungkin menjadi salah satu yang paling sering terdengar.

Apache memang telah lama digunakan untuk berbagai kebutuhan web server. Namun, bukan berarti hanya Apache yang dapat digunakan untuk menjalankan website.

Ada pilihan lain yang juga banyak digunakan dalam lingkungan server modern, yaitu Nginx.

Bagi murid TKJ yang sedang mempelajari Administrasi Sistem Jaringan (ASJ), mengenal Nginx menjadi menarik karena mereka dapat melihat bahwa satu kebutuhan yang sama dapat dilayani menggunakan teknologi yang berbeda.

Nginx bukan hanya digunakan untuk menampilkan halaman website.

Dalam konfigurasi tertentu, Nginx juga dapat berperan sebagai reverse proxy, menangani koneksi client, dan menjadi bagian depan dari aplikasi yang berjalan pada server lain.

Lalu, apa sebenarnya Web Server Nginx dan mengapa teknologi ini banyak digunakan?

Apa Itu Web Server Nginx?

Nginx adalah software yang dapat digunakan sebagai web server untuk menerima dan melayani permintaan dari client.

Selain sebagai web server, Nginx juga dapat digunakan dalam berbagai skenario seperti reverse proxy, load balancing, dan caching, tergantung kebutuhan dan konfigurasi sistem.

Ketika digunakan sebagai web server, gambaran sederhananya seperti ini:

Browser

⬇️

Web Server Nginx

⬇️

File Website

⬇️

Browser menampilkan halaman

Konsep tersebut terlihat sederhana.

Namun, ketika mulai mengelola Nginx pada server sungguhan, administrator akan berhadapan dengan konfigurasi, port, domain, permission, HTTPS, aplikasi backend, hingga troubleshooting.

Mengapa Nginx Banyak Digunakan?

Salah satu karakteristik Nginx adalah kemampuannya menangani koneksi secara efisien pada berbagai skenario penggunaan.

Karena itu, Nginx dapat ditemukan dalam berbagai lingkungan, mulai dari website sederhana hingga infrastruktur aplikasi yang lebih kompleks.

Nginx dapat digunakan untuk:

  • Website.
  • Aplikasi web.
  • API.
  • Reverse proxy.
  • Load balancing.
  • Static content.
  • Gateway untuk aplikasi backend.

Namun, bukan berarti Nginx selalu menjadi pilihan terbaik untuk semua kondisi.

Pemilihan teknologi tetap harus mempertimbangkan kebutuhan aplikasi, desain jaringan, sumber daya server, keamanan, dan kemampuan administrator.

Web Server Nginx dan Linux Server

Nginx sangat menarik untuk dipelajari pada lingkungan Linux Server.

Murid TKJ dapat menggunakan Debian atau Ubuntu Server sebagai media praktikum.

Alur sederhananya:

Linux Server

⬇️

Instal Nginx

⬇️

Konfigurasi

⬇️

Buat Website

⬇️

Uji dari Client

Dengan praktik tersebut, murid tidak hanya mengetahui nama Nginx.

Mereka dapat melihat bagaimana sebuah sistem operasi server menjalankan layanan yang kemudian dapat digunakan oleh perangkat lain melalui jaringan.

Bagaimana Nginx Menampilkan Website?

Misalnya sebuah server memiliki alamat:

192.168.10.20

Kemudian client membuka alamat tersebut melalui browser.

Browser mengirimkan request ke server.

Nginx menerima request tersebut dan memprosesnya berdasarkan konfigurasi yang telah dibuat.

Jika sumber daya yang diminta tersedia, Nginx memberikan response kepada client.

Browser kemudian menampilkan hasilnya.

Secara sederhana:

Client meminta → Nginx memproses → Nginx memberikan response → Browser menampilkan website.

Proses sebenarnya tentu lebih kompleks, terutama ketika website menggunakan database, PHP, HTTPS, DNS, atau aplikasi backend.

Tetapi alur dasar tersebut menjadi fondasi penting untuk memahami cara kerja web server.

Nginx untuk Website Statis

Salah satu praktik paling sederhana adalah menggunakan Nginx untuk melayani static content.

Contohnya:

  • HTML.
  • CSS.
  • JavaScript.
  • Gambar.
  • Font.
  • File pendukung website.

Misalnya sebuah website sederhana memiliki:

index.html
style.css
script.js

Nginx dapat dikonfigurasi untuk menyediakan file-file tersebut kepada browser.

Praktikum seperti ini cocok untuk tahap awal karena murid dapat langsung melihat hasil konfigurasi.

Apa Itu Server Block pada Nginx?

Ketika mulai menggunakan Nginx untuk beberapa website, murid akan menemukan istilah server block.

Secara sederhana, server block digunakan untuk membuat konfigurasi website atau hostname tertentu pada Nginx.

Misalnya satu server memiliki dua website:

portal.tkj.local

dan:

blog.tkj.local

Keduanya dapat diarahkan ke server yang sama, tetapi memiliki konfigurasi dan lokasi file website masing-masing.

Konsep ini memiliki tujuan yang mirip dengan Virtual Host pada Apache, meskipun implementasi dan struktur konfigurasinya berbeda.

Satu Server Bisa Menjalankan Beberapa Website

Bayangkan sebuah sekolah mempunyai satu server yang ingin digunakan untuk beberapa layanan.

Misalnya:

portal.tkj.local

untuk portal jurusan.

blog.tkj.local

untuk website dokumentasi.

elearning.tkj.local

untuk layanan pembelajaran.

Dengan konfigurasi yang tepat, satu server dapat menangani beberapa hostname tersebut.

Di sinilah murid mulai memahami bahwa sebuah server tidak selalu berarti:

Satu server = satu website.

Satu server dapat menyediakan berbagai layanan selama sumber daya dan desain infrastrukturnya memungkinkan.

Bagaimana Nginx Bekerja dengan PHP?

Banyak aplikasi website menggunakan PHP.

Di sinilah murid akan menemukan komponen lain yang disebut PHP-FPM.

Nginx sendiri tidak memproses kode PHP secara langsung seperti interpreter PHP.

Dalam konfigurasi yang umum, Nginx meneruskan request PHP kepada PHP-FPM untuk diproses.

Alurnya dapat digambarkan seperti ini:

Browser

⬇️

Nginx

⬇️

PHP-FPM

⬇️

Kode PHP diproses

⬇️

Response

⬇️

Browser

Konsep ini penting karena murid dapat melihat bahwa satu aplikasi web sebenarnya dapat terdiri dari beberapa layanan yang saling bekerja sama.

Nginx dan Database

Jika website yang dibuat sudah lebih kompleks, kemungkinan besar aplikasi akan membutuhkan database.

Misalnya aplikasi menyimpan:

  • Data pengguna.
  • Data murid.
  • Data berita.
  • Data produk.
  • Data transaksi.

Dalam kondisi seperti ini, Nginx dapat menjadi salah satu bagian dari arsitektur aplikasi.

Contohnya:

Browser

Nginx

PHP-FPM / Aplikasi

Database

Kemudian hasilnya dikembalikan kepada browser.

Dari sini murid mulai mengenal konsep arsitektur aplikasi web.

Apa Itu Reverse Proxy?

Selain sebagai web server, salah satu kemampuan Nginx yang sangat menarik adalah reverse proxy.

Istilahnya memang terdengar teknis.

Tetapi konsep dasarnya cukup mudah.

Bayangkan pengguna hanya mengakses:

app.tkj.local

Pengguna tidak perlu mengetahui server aplikasi yang sebenarnya berada di belakangnya.

Request masuk terlebih dahulu ke Nginx.

Kemudian Nginx meneruskannya kepada aplikasi atau server backend.

Gambaran sederhananya:

Client

⬇️

Nginx

⬇️

Backend Application

Nginx berfungsi sebagai semacam pintu depan bagi layanan yang berada di belakangnya.

Mengapa Reverse Proxy Menarik?

Reverse proxy dapat digunakan untuk berbagai kebutuhan, misalnya:

  • Menjadi pintu masuk aplikasi.
  • Meneruskan request ke backend.
  • Mengatur akses berdasarkan hostname atau path.
  • Menangani HTTPS pada sisi depan.
  • Membantu pengelolaan beberapa layanan.
  • Mendukung load balancing dalam skenario tertentu.

Contohnya sebuah server menjalankan aplikasi pada:

localhost:3000

Pengguna tidak harus mengetik nomor port tersebut.

Nginx dapat dikonfigurasi sehingga pengguna cukup mengakses:

app.tkj.local

Nginx kemudian meneruskan request kepada aplikasi tersebut.

Nginx dan HTTPS

Saat ini keamanan komunikasi website menjadi hal yang sangat penting.

Untuk koneksi HTTPS, komunikasi antara browser dan server dilindungi menggunakan TLS.

Nginx dapat dikonfigurasi untuk melayani website melalui HTTPS menggunakan sertifikat yang sesuai.

Dalam pembelajaran ASJ, materi dapat dikembangkan secara bertahap:

HTTP

⬇️

Nginx

⬇️

HTTPS

Murid akhirnya tidak hanya belajar membuat website bisa dibuka, tetapi juga memahami pentingnya keamanan komunikasi antara client dan server.

Nginx dan Apache, Apa Bedanya?

Setelah membaca artikel #43 tentang Apache, pertanyaan berikutnya mungkin muncul:

“Kalau sudah ada Apache, mengapa perlu Nginx?”

Jawabannya bukan karena salah satunya pasti lebih baik.

Apache dan Nginx memiliki karakteristik dan pendekatan konfigurasi yang berbeda.

Secara sederhana:

Web Server ApacheWeb Server Nginx
Sangat lama digunakan dan memiliki ekosistem luasBanyak digunakan dalam berbagai infrastruktur modern
Mendukung berbagai skenario web hostingKuat sebagai web server dan reverse proxy
Memiliki struktur konfigurasi tersendiriMemiliki struktur konfigurasi tersendiri
Banyak dokumentasi dan tutorialBanyak dokumentasi dan tutorial
Cocok untuk berbagai kebutuhanCocok untuk berbagai kebutuhan

Jadi, murid sebaiknya tidak mengambil kesimpulan:

“Apache lebih bagus.”

atau:

“Nginx pasti lebih bagus.”

Pertanyaan yang lebih tepat adalah:

“Teknologi mana yang paling sesuai dengan kebutuhan sistem yang sedang dibangun?”

Belajar Apache dan Nginx Justru Menguntungkan

Menurut saya, mempelajari kedua web server tersebut justru memberikan pengalaman yang lebih baik kepada murid TKJ.

Mereka akan memahami bahwa konsep web server dapat diwujudkan menggunakan teknologi berbeda.

Saat nantinya menemui server Apache, Nginx, atau teknologi lainnya di dunia kerja, murid tidak langsung merasa asing.

Mereka sudah memahami konsep dasarnya:

Request

Web Server

Processing

Response

Tinggal menyesuaikan dengan teknologi yang digunakan.

Bagaimana Jika Nginx Tidak Bisa Diakses?

Ini bagian yang tidak kalah penting.

Bayangkan Nginx sudah diinstal, tetapi website tidak dapat dibuka.

Jangan langsung menyimpulkan server rusak.

Lakukan pemeriksaan secara bertahap.

1. Periksa apakah Nginx berjalan

Pastikan service Nginx aktif.

2. Periksa konfigurasi

Kesalahan sintaks konfigurasi dapat menyebabkan masalah pada service.

3. Periksa IP server

Pastikan server memiliki alamat IP yang benar.

4. Periksa koneksi client

Pastikan client dapat menjangkau server.

5. Periksa port

Pastikan layanan dapat menerima koneksi pada port yang digunakan.

6. Periksa firewall

Firewall yang terlalu ketat dapat menyebabkan akses terblokir.

7. Periksa file website

Pastikan file dan direktori yang digunakan memang tersedia.

8. Jika menggunakan PHP, periksa PHP-FPM

Nginx dapat berjalan normal sementara aplikasi PHP mengalami masalah pada backend.

Dari proses tersebut murid belajar bahwa troubleshooting harus dilakukan berdasarkan bukti dan urutan pemeriksaan.

Error Justru Bisa Menjadi Bahan Belajar

Dalam praktik administrasi server, error adalah hal yang wajar.

Konfigurasi bisa salah.

Permission bisa keliru.

Service bisa gagal berjalan.

Port bisa tertutup.

Website bisa menampilkan error.

Bagi murid, kondisi tersebut jangan selalu dianggap sebagai kegagalan.

Justru dari error itulah mereka belajar bertanya:

Apa yang salah?

Kemudian:

Bagaimana cara membuktikannya?

Dan:

Apa solusi yang paling tepat?

Pola berpikir seperti ini akan sangat berguna ketika mereka memasuki dunia kerja.

Praktikum Web Server Nginx untuk Murid TKJ

Nginx sangat cocok dijadikan proyek praktikum ASJ.

Misalnya guru memberikan tantangan:

“Bangun Web Server Nginx pada Debian Server dan buat website yang dapat diakses dari client.”

Murid dapat melakukan:

  1. Menyiapkan Debian Server.
  2. Mengatur IP address.
  3. Menginstal Nginx.
  4. Membuat website sederhana.
  5. Menentukan lokasi file website.
  6. Membuat server block.
  7. Menghubungkan domain lokal dengan DNS.
  8. Menguji website dari client.
  9. Melakukan troubleshooting.
  10. Membuat dokumentasi.

Setelah berhasil, tantangannya dapat dinaikkan.

Misalnya:

“Buat dua website pada satu server menggunakan server block.”

Kemudian dilanjutkan dengan:

“Gunakan Nginx sebagai reverse proxy untuk aplikasi backend.”

Dengan cara seperti ini, pembelajaran dapat berkembang sesuai kemampuan murid.

Nginx dan DNS Server Saling Melengkapi

Pada Artikel #41 kita sudah membahas DNS Server.

Sekarang kita dapat melihat hubungan keduanya.

Misalnya:

portal.tkj.local

diarahkan oleh DNS ke:

192.168.10.20

Kemudian Nginx pada server tersebut memiliki konfigurasi untuk:

portal.tkj.local

Ketika client mengakses nama tersebut:

DNS

→ menemukan alamat server

Nginx

→ menentukan website yang harus dilayani

Website

→ dikirim kepada browser

Jadi, pembelajaran DNS dan Nginx sebenarnya dapat dibuat menjadi satu proyek yang saling berhubungan.

Jangan Lupakan Dokumentasi

Setelah konfigurasi berhasil, pekerjaan administrator belum sepenuhnya selesai.

Catat informasi penting seperti:

  • IP server.
  • Nama domain.
  • Lokasi website.
  • Konfigurasi server block.
  • Port layanan.
  • PHP-FPM jika digunakan.
  • Konfigurasi HTTPS.
  • Hasil pengujian.
  • Masalah yang ditemukan.
  • Solusi yang dilakukan.

Dokumentasi akan sangat membantu ketika server harus diperbaiki, dikembangkan, atau dipindahkan.

Dari Nginx, Murid Belajar Arsitektur Server

Nginx sebenarnya memberikan kesempatan kepada murid untuk memahami sesuatu yang lebih besar daripada sekadar web server.

Misalnya sebuah sistem dapat memiliki arsitektur:

Client

⬇️

Nginx

⬇️

PHP-FPM

⬇️

Aplikasi

⬇️

Database

Atau:

Client

⬇️

Nginx Reverse Proxy

⬇️

Backend Application

Dengan memahami hubungan tersebut, murid mulai melihat server sebagai sebuah sistem yang terdiri dari beberapa komponen.

Kesimpulan

Web Server Nginx merupakan salah satu teknologi yang menarik untuk dipelajari dalam Administrasi Sistem Jaringan.

Selain dapat digunakan untuk melayani website, Nginx juga dapat digunakan sebagai reverse proxy dan dalam berbagai skenario infrastruktur lainnya.

Bagi murid TKJ, pembelajaran Nginx akan lebih bermanfaat jika tidak berhenti pada instalasi.

Mereka perlu memahami bagaimana request diproses, bagaimana server block bekerja, bagaimana Nginx berkomunikasi dengan PHP-FPM, bagaimana HTTPS diterapkan, serta bagaimana melakukan troubleshooting ketika layanan mengalami masalah.

Dan ketika dibandingkan dengan Apache, pertanyaannya bukan:

“Mana yang paling bagus?”

Tetapi:

“Mana yang paling sesuai dengan kebutuhan sistem?”

Karena dunia kerja tidak selalu menggunakan teknologi yang sama.

Yang dibutuhkan adalah kemampuan untuk memahami, mengimplementasikan, menguji, melakukan troubleshooting, dan mendokumentasikan sebuah sistem.

Pada akhirnya, belajar Web Server Nginx bukan hanya belajar satu software.

Kita sedang belajar bagaimana sebuah layanan web dibangun, bagaimana beberapa komponen bekerja bersama, dan bagaimana seorang administrator memastikan layanan tersebut tetap berjalan dengan baik.

Categories: Education