Anda di halaman 1dari 6

Menerapkan Virtualhost Untuk Keperluan

Banyak Domain pada Nginx

Dapatkan update terbaru Linuxku.com di kanal Telegram https://telegram.me/linuxkudotcom.

Bagi Anda pemilik peladen (server) baik, dedicated ataupun VPS yang mana memiliki banyak
domain ingin membuat domain-domain Anda dalam satu peladen (server), maka kita perlu
membuat sebuah virtualhost. Tulisan kali ini, masih seputar Nginx, membahas mengenai
virtualhost, dan perlu diketahui bahwa tutorial ini dapat diimplementasikan dibeberapa distro
Linux mainstream untuk server, seperti Debian, Ubuntu, Fedora, Centos dan RHEL.

Tahap Konfigurasi

Penulis asumsikan Anda mempunyai dua buah domain, pertama bernama contoh.com yang
kedua bernama contoh2.com. Pertama-tama, kita buat dahulu dua buah direktori di /var/www
gunakan nama sesuai domain agar mudah untuk dimaintenance pada suatu saat nanti. Contohnya
seperti berikut:

$ sudo mkdir -p /var/www/contoh.com/html


$ sudo mkdir -p /var/www/contoh2.com/html

Kemudian ubah permissionnya:

$ sudo chown -R nginx:nginx /var/www/contoh.com/html


$ sudo chown -R nginx:nginx /var/www/contoh2.com/html
$ sudo chmod -R 755 /var/www

Catatan: Bagi Anda pengguna Debian/Ubuntu ganti pada nginx:nginx dengan www-data:www-
data.
Lalu kemudian untuk menyamakan antara pengguna Nginx pada standar Debian/Ubuntu, bagi
Anda pengguna Centos/Fedora/RHEL buat direktori seperti berikut:
$ sudo mkdir /etc/nginx/sites-available

$ sudo mkdir /etc/nginx/sites-enabled

Bagi Anda pengguna Debian/Ubuntu direktori di atas tidak perlu dibuat, karena sudah default
dari sananya sudah ada ketika Anda menginstal Nginx.

Setelah itu bagi pengguna Centos/Fedora/RHEL lakukan pengaturan berikut:

Pertama-tama sunting nginx.conf. Agar pengaturan tidak rusak baiknya di backup terlebih
dahulu

$ sudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf


$ sudo nano /etc/nginx/nginx.conf

Hapus semua yang berawalan dengan kode:

server {
....
}

Lalu kemudian isi dengan skrip di bawah ini:

include /etc/nginx/sites-enabled/*.conf;
server_names_hash_bucket_size 64;

Jadi seperti gambar di bawah ini:


Selanjutnya yakni salin berkas dalam /etc/nginx/conf.d/default.conf ke /etc/nginx/sites-
available/

sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-


available/contoh.com.conf

Kemudian buat berkas dengan nama sebagai berikut:

$ sudo nano /var/www/contoh.com/html/index.php

Dan isi dengan skrip di bawah ini:

<?php
echo "<h1>Contoh1</h1>";

Selanjutanya lagi yakni salin berkas index.php tersebut ke direktori contoh2.com.

$ sudo cp /var/www/contoh.com/html/index.php /var/www/contoh2.com/html


Dan sunting index.php nya.

$ sudo nano /var/www/contoh2.com/html/index.php

Lalu isi dengan skrip di bawah ini:

<?php
echo "<h1>Contoh2</h1>";

Langkah selanjutnya yakni membuat virtualhost di direktori /etc/nginx/sites-available, buat


seperti berikut:

$ sudo nano /etc/nginx/sites-available/contoh.com.conf

Selanjutnya isikan dengan skrip di bawah ini:

server {
listen 80 default_server;
listen [::]:80 default_server;

root /var/www/contoh.com/html;
server_name contoh.com www.contoh.com;
index index.php index.html index.htm;

location / {
try_files $uri $uri/ /index.php?$args;
}

location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
include /etc/nginx/fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}

error_page 500 502 503 504 /50x.html;


location = /50x.html {
root /usr/share/nginx/html;
}
}

Perhatikan skrip di atas. Tulisan dengan warna biru artinya itu adalah default server, jadi untuk
skrip di domain contoh2.com Anda hilangkan tulisan default_server. Kemudiian tulisan dengan
warna merah artinya disesuaikan dengan path virtualhost Anda.

Untuk lebih mudah kita salin saja berkas index.php dari domain sebelumnya.
$ sudo cp /etc/nginx/sites-available/contoh.com.conf /etc/nginx/sites-available/contoh2.com.conf

Lalu sunting hilangkan default_server dan ganti path disesuaikan dengan virtualhost Anda.
Contoh seperti gambar di bawah:

Langkah terkahir yakni buat symbolic link yang mana menyatakan bahwa virtualhost itu aktif:
$ sudo ln -s /etc/nginx/sites-available/contoh.com.conf /etc/nginx/sites-enabled/
$ sudo ln -s /etc/nginx/sites-available/contoh2.com.conf /etc/nginx/sites-enabled/
Dan restart Nginx Anda.

$ sudo systemctl restart nginx

Tahap Testing

Jika semua konfigurasi yang Anda lakukan sudah benar, maka seharunya domain dapat diakses
seperti gambar di bawah ini:
Semoga bermanfaat :)