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 -yuntuk 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.htmlsederhana 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.comSelanjutnya, 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 -tJika hasilnya “syntax is ok” dan “test is successful”, restart Nginx:
sudo systemctl restart nginxSekarang, 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.comCertbot 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-runJika 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.logJika 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 -lalusudo apt install -y nodejs. - Buat folder
/var/www/myappdan tempatkan fileapp.jsyang menjalankan server Express pada port 3000. - Jalankan dengan
pm2 start app.jsagar 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.





