Tutorial Cara Konfigugrasi Nginx Server Block (Virtual Host) Ubuntu 22.04.
NginX Server block adalah konfigurasi server virtual yang memungkinkan Anda untuk meng-host beberapa situs web atau aplikasi web pada satu server fisik yang sama dengan menggunakan Nginx sebagai server web. Server block juga dikenal sebagai “Virtual Hosts” dalam istilah Apache HTTP Server.
Hal yang diperlukan dalam tutorial kali ini adalah :
- Sistem Operasi Ubuntu 22.04 LTS, Panduan instalasi bisa dilihat di artikel instalasi ubuntu 22.04
- Nginx Web-Server Yang sudah terinstall, Panduan instalasi bisa dilihat di artikel instalasi LEMP di ubuntu 22.04
Jika Kebutuhan sistem diatas sudah siap mari lanjut ke Tutorial konfigurasi.
Struktur Direktori
Langkah Pertama Menentukan Direktori Root Domain yang fungsinya adala direktori utama file script website ditempatkan dan menjadi direktori aktif dari sebuah nama domain.
Direktori Root ini bisa dibuat dimana saja bebas disesuaikan kebutuhan saja. Dalam artikel tutoial ini Di tempatkan di dalam direktori /var/www/. Simulasi direktorinya alah sebagai berikut :
/var/www/
├── sobit-one.com
│ └── public_html
├── sobit-two.com
│ └── public_html
Jadi setiap domain sobit-one.com dan sobit-two.com menjadikan direktori /var/www/{nama-domain}/public_html
sebagai root direktori website dan aktifitas website tidak dapat menggangu direktori diluar Direktori Root.
Lanjut ke pembuatan Direktori Root kedua domain dengan perintah berikut.
# sudo mkdir -p /var/www/sobit-one.com/public_html
# sudo mkdir -p /var/www/sobit-two.com/public_html
Lalu buatkan file index.html di setiap direktori public_html diatas, diawali dengan membuat file milih domain sobit-one.com
# sudo nano /var/www/sobit-one.com/public_html/index.html
# sudo nano /var/www/sobit-two.com/public_html/index.html
Gunakan Script html Berikut ini untuk file index.html di kedua file agar mempermudah melihat hasil test di browser di bagian akhir.
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Welcome to sobit-one.com</title> </head> <body> <h1>Success! sobit-one.com home page!</h1> </body> </html>
<!DOCTYPE html> <html lang="en" dir="ltr"> <head> <meta charset="utf-8"> <title>Welcome to sobit-two.com</title> </head> <body> <h1>Success! sobit-two.com home page!</h1> </body> </html>
Ubah permission direktori dan file kedua domain ke user dan group milik nginx yaitu www-data. Hal ini adalah additional berlaku jik ada file error_log yang ditulis oleh nginx.
# sudo chown -R www-data: /var/www/sobit-one.com
# sudo chown -R www-data: /var/www/sobit-two.com
Setelah direktori root sudah siap lanjut ke tahap selanjutnya.
Konfigurasi NginX Server Block( Virtual Host )
Untuk membuat server dikreotri kerja akan berpindah ke direktoi konfigurasi nginx /etc/nginx
, /etc/nginx/sites-available
, dan /etc/nginx/sites-enabled
.
/etc/nginx direktori
berisi konfigrasi dasar nginx, seperti pengaturan direktori konfigurasi dan log yang diload, module dll./etc/nginx/sites-available
lokasi dimana umumnya konfigurasi Server Block dibuat, tidak di load secara langsung dan perlu di buatkan symlink ke direktori sites-enabled./etc/nginx/sites-enabled
lokasi konfig file server block yang di definiskan di nginx.conf dan akan diloat oleh nginx web-server ketika running.
Konfig Tambahan hash_bucket_size
Konfigurasi ini diperlukan jika nama domain yang di definiskan di tag servername memiliki nama yang cukup panjang. Perlu ditambahkan dengan cara mengedit file nginx.conf.
# sudo nano /etc/nginx/nginx.conf
Temukan variabel server_names_hash_bucket_size
, Hapus symbol tagar #
dan tambahkan ukuran variabel jika perlu ukuran yang bisa disematkan adalah 32, 64, 128 dan seterusnya.

Konfigurasi Server block sobit-one.com dan sobit-two.com
Lanjut membuat file konfigurasi utama server block, berikan nama file yang sama dengan domain agar mudah di ingat (nama file konfigurasi bisa bebas). Untuk melakukannya lihat perintah dibawah ini.
# sudo nano /etc/nginx/sites-available/sobit-one.com
# sudo nano /etc/nginx/sites-available/sobit-two.com
Lalu Isikan setiap file konfigruasi domain dengan baris konfigurasi berikut ini. Dasarnya konfigurasi ini sudah ada di dalam file /etc/nginx/sites-available/default
server { listen 80; listen [::]:80; server_name sobit-one.com www.sobit-one.com; root /var/www/sobit-one.com/public_html; index index.html; access_log /var/log/nginx/sobit-one.com.access.log; error_log /var/log/nginx/sobit-one.com.error.log; }
server { listen 80; listen [::]:80; server_name sobit-two.com www.sobit-two.com; root /var/www/sobit-two.com/public_html; index index.html; access_log /var/log/nginx/sobit-two.com.access.log; error_log /var/log/nginx/sobit-two.com.error.log; }
Bisa di perhatikan baris 5 dan 7 pada setiap file konfigurasi diatas :
server_name
disiikan dengan nama domain.root
diisikan direktori root website yang sebelumnya sudah dibuat.
Setelah sesuai save kedua isi file.
Lanjut ke test sytax apakah sudah tepat dengan perintah dibawah ini dan pastikan memiliki out put sukses.
# sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Sampai disini lanjut ke tahap terakhir konfigurasi membuat symlink ke direktori /etc/nginx/sites-enabled agar server block aktif.
# sudo ln -s /etc/nginx/sites-available/sobit-one.com /etc/nginx/sites-enabled/
# sudo ln -s /etc/nginx/sites-available/sobit-two.com /etc/nginx/sites-enabled/
# ls -al /etc/nginx/sites-enabled/
hasil akhir symlink akan terlihat seperti dibawah ini.

Lalu restart service nginX
# sudo systemctl nginx restart
Konfigurasi Selesai.
Hasil Test melalui Browser
Pada test ini menggunakan domain sobit-one.com dan sobit-two.com yang tidak valid atau tidak ada aktif. Agar bisa diakses perlu dilakukan edit pada file hosts agar bisa memetakan domain ke ip pada tutorial ini. Cara edit file hosts bisa melihat artikel Edit File Hosts Untuk Pointing Domain.
Sebelumnya sudah dibuatkan file index.html di setiap direktori root domain, dan bisa kita lihat hasil testnya melalui browser dengan mengakses nama domain.


Dengan bgini nginx server block sudah selesai dikonfigurasi dan siap melayani service web server untuk banyak domain.
Kesimpulan
Dengan adanya nginx server block ini satu webserver nginx bisa merespon banyak domain dengan root direktori yang berbeda sehingga web aplikasi yang digunakan bisa seragam. Fitur ini bisa juga diterapkan untuk membuat server block subdomain. Fitur server block ini sama dengan fitur VirtualHost Apache.