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 { .... }
include /etc/nginx/sites-enabled/*.conf; server_names_hash_bucket_size 64;
Jadi seperti gambar di bawah ini:
sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/contoh.com.conf
$ sudo nano /var/www/contoh.com/html/index.php
Dan isi dengan skrip di bawah ini:
<?php echo "<h1>Contoh1</h1>";
$ 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
<?php echo "<h1>Contoh2</h1>";
$ 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/
$ 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 :)





Website ini menganut paham demokrasi wkwk
Jangan lupa gunakan emot biar akrab gan (/ ^.^)/
EmoticonEmoticon