Cara setting Nginx Ubuntu – Panduan Lengkap untuk Pemula

Cara setting Nginx Ubuntu – Panduan Lengkap untuk Pemula
Cara setting Nginx Ubuntu – Panduan Lengkap untuk Pemula

Jika Anda baru saja menginstall Ubuntu di server atau laptop pribadi dan ingin menyajikan situs web atau aplikasi, Nginx menjadi pilihan yang sangat populer. Dengan arsitektur yang ringan, kemampuan menangani ribuan koneksi secara simultan, serta dukungan untuk HTTP/2 dan reverse proxy, Nginx sudah menjadi tulang punggung banyak situs berskala kecil hingga besar.

Artikel ini akan mengajak Anda melewati setiap tahapan cara setting Nginx Ubuntu secara detail. Mulai dari instalasi paket, menyiapkan firewall, hingga menambahkan sertifikat SSL gratis dari Let’s Encrypt. Semua dijelaskan dengan bahasa yang friendly, sehingga bahkan pemula sekalipun dapat mengikuti tanpa kebingungan.

Sebelum masuk ke langkah‑langkah teknis, ada baiknya Anda memahami mengapa Nginx begitu banyak dipilih. Menurut data Statista pada tahun 2023, Nginx menguasai lebih dari 33% pangsa pasar web server global, mengungguli Apache dalam hal kecepatan respon dan efisiensi memori. Fakta ini menjadi bukti kuat bahwa belajar cara setting Nginx Ubuntu adalah investasi waktu yang berharga bagi siapa saja yang ingin menjalankan layanan online.

Cara setting Nginx Ubuntu: Instalasi Dasar

Langkah pertama tentu saja menginstall Nginx di sistem Ubuntu Anda. Proses ini cukup sederhana karena Ubuntu sudah menyediakan paket resmi di repositori resmi.

Langkah 1: Perbarui repositori dan instal Nginx

  • Jalankan perintah sudo apt update && sudo apt upgrade -y untuk memastikan semua paket ter‑update.
  • Instal Nginx dengan sudo apt install nginx -y.
  • Setelah instalasi selesai, cek status layanan dengan systemctl status nginx. Jika aktif, berarti Nginx sudah berjalan.

Jika Anda belum mengaktifkan firewall, Ubuntu biasanya sudah mengaktifkan ufw. Untuk mengizinkan trafik HTTP dan HTTPS, gunakan perintah berikut:

Langkah 2: Konfigurasi firewall

  • sudo ufw allow 'Nginx Full' – perintah ini membuka port 80 (HTTP) dan 443 (HTTPS).
  • Verifikasi dengan sudo ufw status.

Setelah Nginx ter‑install dan firewall sudah siap, Anda dapat mengakses alamat IP server melalui browser. Secara default, Nginx akan menampilkan halaman “Welcome to Nginx!” yang menandakan server sudah siap menerima permintaan.

Pengaturan Virtual Host (Server Block) – Cara setting Nginx Ubuntu untuk banyak situs

Jika Anda berencana menghosting lebih dari satu situs pada satu server, Anda perlu membuat virtual host atau yang disebut “server block” di Nginx. Ini memungkinkan setiap domain memiliki konfigurasi terpisah, seperti root folder, log, dan sertifikat SSL.

Membuat direktori situs

  • Buat folder untuk domain contoh.com: sudo mkdir -p /var/www/contoh.com/html.
  • Set hak kepemilikan ke user Anda (misalnya ubuntu): sudo chown -R $USER:$USER /var/www/contoh.com/html.
  • Buat file index.html sederhana sebagai placeholder.

Membuat file konfigurasi server block

Salin file contoh yang ada di /etc/nginx/sites-available/default menjadi file baru:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/contoh.com

Selanjutnya, edit file tersebut dengan editor favorit (nano, vim, dsb.) dan ubah bagian penting berikut:

server { listen 80; server_name contoh.com www.contoh.com; root /var/www/contoh.com/html; index index.html index.htm index.nginx-debian.html; location / { try_files $uri $uri/ =404; }
}

Setelah selesai, aktifkan konfigurasi dengan membuat symbolic link ke sites-enabled:

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

Uji konfigurasi Nginx untuk memastikan tidak ada kesalahan sintaks:

sudo nginx -t

Jika hasilnya “syntax is ok” dan “test is successful”, restart Nginx:

sudo systemctl restart nginx

Sekarang, ketika Anda mengarahkan DNS domain contoh.com ke IP server, halaman placeholder akan muncul.

Menambahkan SSL dengan Let’s Encrypt – Cara setting Nginx Ubuntu yang aman

Keamanan situs tidak lengkap tanpa enkripsi HTTPS. Let’s Encrypt menyediakan sertifikat SSL gratis dan otomatis. Kami akan menggunakan certbot untuk mengotomatiskan proses ini.

Instal Certbot dan plugin Nginx

  • Tambahkan repository Certbot: sudo snap install core; sudo snap refresh core
  • Instal Certbot: sudo snap install --classic certbot
  • Buat alias: sudo ln -s /snap/bin/certbot /usr/bin/certbot

Mendapatkan sertifikat

Jalankan perintah berikut, ganti contoh.com dengan domain Anda:

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

Certbot akan menanyakan beberapa pertanyaan, termasuk apakah ingin mengalihkan semua trafik HTTP ke HTTPS. Pilih “Yes” untuk keamanan maksimal. Setelah selesai, Certbot otomatis mengubah file konfigurasi Nginx, menambahkan blok listen 443 ssl dan listen 80 yang mengarahkan ke HTTPS.

Renewal otomatis

Let’s Encrypt sertifikat berlaku selama 90 hari, namun Certbot sudah mengatur cron job untuk memperbarui secara otomatis. Anda dapat menguji proses renewal dengan:

sudo certbot renew --dry-run

Jika tidak ada error, berarti sistem siap memperpanjang sertifikat secara otomatis.

Optimasi Performa – Tips lanjutan dalam cara setting Nginx Ubuntu

Setelah server berjalan, ada beberapa pengaturan yang dapat meningkatkan kecepatan dan stabilitas. Berikut beberapa tips yang sering dipakai oleh admin berpengalaman.

1. Mengaktifkan gzip compression

Compression mengurangi ukuran file yang dikirim ke client, mempercepat waktu load. Tambahkan blok berikut ke /etc/nginx/nginx.conf di dalam http {}:

gzip on;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml+rss;
gzip_min_length 256;

2. Mengatur cache static files

Cache membantu browser menyimpan file statis (gambar, CSS, JS) untuk periode tertentu. Masukkan directive berikut ke dalam blok location ~* .(jpg|jpeg|png|gif|ico|css|js)$ pada server block Anda:

expires 30d;
add_header Cache-Control "public, no-transform";

3. Menyesuaikan worker process dan connections

Untuk server dengan banyak core CPU, sesuaikan worker_processes dengan jumlah core. Edit /etc/nginx/nginx.conf:

worker_processes auto;
events { worker_connections 1024;
}

Nilai worker_connections menentukan berapa banyak koneksi yang dapat ditangani per proses. Kombinasi worker_processes * worker_connections memberi perkiraan maksimum koneksi simultan.

Pemantauan dan Log – Cara setting Nginx Ubuntu untuk troubleshooting

Setiap perubahan konfigurasi sebaiknya diikuti dengan pemantauan log. Nginx menyimpan dua log utama: access.log (permintaan masuk) dan error.log (pesan kesalahan). Kedua file berada di /var/log/nginx/.

Melihat log secara real‑time

sudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log

Jika Anda menginginkan visualisasi lebih lengkap, pertimbangkan menginstall GoAccess atau Grafana + Prometheus yang dapat mengolah data log menjadi dashboard interaktif.

Mengaktifkan log rotation

Ubuntu sudah menyediakan logrotate untuk Nginx. Pastikan file /etc/logrotate.d/nginx ada dan berisi konfigurasi rotasi harian atau mingguan, sehingga ukuran log tidak membengkak.

Keamanan Tambahan – Praktik terbaik dalam cara setting Nginx Ubuntu

Selain SSL, ada beberapa langkah keamanan yang sebaiknya diterapkan.

1. Menonaktifkan versi server

Nginx secara default mengirim header Server: nginx/1.18.0. Untuk menyembunyikannya, tambahkan di http {}:

server_tokens off;

2. Menggunakan HTTP Security Headers

Header seperti Content-Security-Policy, X-Content-Type-Options, dan Referrer-Policy melindungi aplikasi dari serangan XSS dan clickjacking. Contoh penambahan:

add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options SAMEORIGIN;
add_header X-XSS-Protection "1; mode=block";

3. Membatasi request per IP

Gunakan modul ngx_http_limit_req_module untuk mencegah serangan DDoS sederhana. Tambahkan blok berikut dalam http {}:

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=5r/s;

Lalu pada server block yang ingin dibatasi:

location / { limit_req zone=mylimit burst=10 nodelay;
}

Backup dan Restore – Cara setting Nginx Ubuntu yang tahan bencana

Konfigurasi Nginx tidak terlalu besar, tetapi tetap penting untuk dibackup secara rutin. Berikut cara cepat membuat salinan.

Menggunakan rsync

sudo rsync -avz /etc/nginx/ /path/to/backup/nginx_backup_$(date +%F)

Jika server mengalami kerusakan, Anda cukup menyalin kembali folder /etc/nginx/ dan restart layanan.

Backup otomatis dengan cron

Tambahkan baris berikut ke crontab -e untuk backup harian pukul 02:00:

0 2 * * * rsync -avz /etc/nginx/ /var/backups/nginx/$(date +%F)

Contoh Kasus: Deploy Aplikasi Node.js di belakang Nginx

Sering kali, Nginx dipakai sebagai reverse proxy untuk aplikasi yang berjalan di port lain, misalnya Node.js pada port 3000. Berikut langkah singkatnya.

1. Install Node.js dan aplikasi contoh

  • Gunakan curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - lalu sudo apt install -y nodejs.
  • Buat folder /var/www/myapp dan tempatkan file app.js yang menjalankan server Express pada port 3000.
  • Jalankan dengan pm2 start app.js agar tetap hidup.

2. Konfigurasi Nginx sebagai reverse proxy

Tambahkan blok berikut ke file server block domain Anda:

location / { proxy_pass http://127.0.0.1:3000; 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;
}

Restart Nginx, dan kini permintaan ke https://contoh.com akan diteruskan ke aplikasi Node.js secara transparan.

Pertanyaan Umum yang Sering Muncul

Apakah Nginx dapat dijalankan bersamaan dengan Apache?

Ya, keduanya bisa berjalan pada port yang berbeda (misalnya Nginx di 80/443, Apache di 8080). Namun, biasanya satu server cukup untuk kebanyakan kebutuhan, sehingga mengurangi kompleksitas.

Bagaimana cara menambah subdomain?

Tambahkan baris server_name subdomain.contoh.com; pada server block yang sudah ada atau buat server block baru khusus subdomain. Pastikan DNS mengarah ke IP server.

Apakah Nginx mendukung HTTP/2 secara default?

Jika Anda sudah mengaktifkan SSL, Nginx otomatis mengaktifkan HTTP/2. Pastikan Anda menggunakan listen 443 ssl http2; dalam konfigurasi.

Dengan mengikuti panduan ini, Anda kini memiliki fondasi kuat untuk mengelola web server berbasis Ubuntu menggunakan Nginx. Dari instalasi dasar, konfigurasi virtual host, hingga keamanan dan optimasi, setiap langkah dirancang agar mudah dipahami sekaligus cukup mendalam bagi yang ingin menggali lebih jauh. Jangan ragu bereksperimen dengan modul tambahan, mengintegrasikan aplikasi lain, atau menyesuaikan setting sesuai kebutuhan spesifik Anda.

Jika Anda tertarik dengan topik lain yang bersinggungan dengan manajemen keuangan atau produktivitas, Anda bisa membaca Cara menghitung Net Worth atau Kekayaan Bersih Pribadi dengan Mudah untuk memahami bagaimana mengelola sumber daya secara efisien, atau mengecek Cara menggunakan ChatGPT untuk SEO yang dapat membantu meningkatkan visibilitas situs Anda.

Selamat mencoba! Semoga server Anda berjalan lancar, aman, dan selalu siap melayani pengunjung.

Also Read

Bagikan:

ubay

Baihaki

Halo! Saya Baihaki. Selamat datang di ruang berbagi saya. Di sini, saya menulis tentang apa saja yang menarik hati—mulai dari hobi, perjalanan wisata, hingga tips gaya hidup sehat. Mari bereksplorasi dan tumbuh bersama melalui kata-kata di blog ini.

Leave a Comment