Cara Membuat Virtual Host Nginx (Server Blocks) di Centos 8 / RHEL 8 - Halo teman-teman semuanya, pada kesempatan kali ini klita semua akan belajar bagaimana cara membuat sebuahs server block Nginx di CentOS / RHEL 8.
Block Server merupakan istilah virtual host di Nginx, ini adalah fitur dari Web Server Nginx yang memungkinkan kita dapat meng-host beberapa situs web pada satu server.
Langsung saja kita mulai, silahkan teman-teman ikuti langkah demi langkahnya biar tidak terjadi error atau kesalahan di block server Nginx.
Langkah 1 - Konfigurasi File Hosts
jika kita telah menggunakan domain, sekarang silahkan ubah file host untuk mengarahkan permintaan ke server pribadi virtual (VPS).
sudo nano /etc/hosts
Setelah itu silahkan teman-teman tambahkan konfigurasi dibawah ini :
ip_server website1.com
ip_server website2.com
Simpan file dengan cara CTRL
+ X
kemudian klik Y
.
Langkah 2 - Membuat Direktori
Nginx dapat menjalankan banyak situs dalam satu server, karena itu maka setiap situs web harus memiliki direktori tersendiri.
Diatas kita sudah menambahkan 2 contoh domain
yang akan kita gunakan nanti yaitu website1.com
dan website2.com
. Setiap Server Block di Nginx harus kita taruh di dalam root dokumen (/var/www/html ).
Sekarang kita akan membuat 2 direktori
untuk 2 domain
diatas. silahkan teman-teman jalankan perintah berikut ini :
sudo mkdir -p /var/www/html/website1.com
Kemudian buat satu direktori lagi
sudo mkdir -p /var/www/html/website2.com
Selanjutnya, ubah kepemilikan file sehingga pengguna lain dapat menambah, menghapus, atau memodifikasi file dalam direktori.
sudo chown -R $USER:$USER /var/www/html/website1.com
sudo chown -R $USER:$USER /var/www/html/website2.com
Sekarang kita berikan permission untuk semua file yang ada di dalam direktori /var/www/html menggunakan chmod, silahkan jalankan perintah ini :
sudo chmod -R 755 /var/www/html
Langkah 3 - Membuat Halaman Demo
Langkah berikut adalah membuat konten yang ingin kita tampilkan di situs web yang ada di blok server Nginx. Ini adalah cara termudah untuk mengetahui proses berjalannya, kita bisa membuat file index.html
di masing-masing domain yang sudah kita buat diatas.
nano /var/www/html/website1.com/index.html
Setelah itu silahkan masukkan kode berikut ini
<html>
<head>
<title>Selamat Datang di Website1.com</title>
<head>
<body>
<h1>SUKSES! kita sudah berhasil membuat Server Block untuk domain Website1.com.</h1>
<body>
<html>
Simpan file dengan cara CTRL
+ X
kemudian klik Y
.
Juga, tambahkan konten yang mirip dengan langkah sebelumnya, tetapi ubah spesifik agar sesuai dengan domain kedua:
nano /var/www/html/website2.com/index.html
Setelah itu silahkan masukkan kode berikut ini
<html>
<head>
<title>Selamat Datang di Website2.com</title>
<head>
<body>
<h1>SUKSES! kita sudah berhasil membuat Server Block untuk domain Website2.com.</h1>
<body>
<html>
Simpan file dengan cara CTRL
+ X
kemudian klik Y
.
Langkah 4 - Membuat Direktori Server Block
Sebelum kita membuat virtual host untuk dua domain, kita perlu membuat dua direktori:
Silahkan gunakan perintah mkdir
untuk membuat direktori baru:
sudo mkdir /etc/nginx/sites-available
sudo mkdir /etc/nginx/sites-enabled
Kemudian, buka file konfigurasi Nginx dan modifikasi dengan menambahkan path direktori:
sudo nano /etc/nginx/nginx.conf
Di dalam blok http
, silahkan teman-teman cari include /etc/nginx/conf.d/*.conf
dan tambahkan dua baris berikut ini tepat dibawahnya:
include /etc/nginx/sites-enabled/*.conf
server_names_hash_bucket_size 64;
Jadi hasilnya nanti seperti berikut ini :
include /etc/nginx/conf.d/*.conf
include /etc/nginx/sites-enabled/*.conf
server_names_hash_bucket_size 64;
Simpan file dengan cara CTRL
+ X
kemudian klik Y
.
Terus kita cek, apakah ada kesalahan di dalam settingan kita diatas, kita bisa jalankan perintah
sudo nginx -t
Jika berhasil dan tidak ada error, maka output yang dihasilnya seperti berikut ini :
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Langkah 5 - Membuat File Server Block
Secara bawaan Nginx sudah memiliki default Server Block dengan nama default.conf
. Karena nanti kita akan membuat Server Block untuk 2 domain
kita, maka disini kita bisa meng-copy default.conf
dan memodifikasinya dan disesuaikan dengan 2 domain kita nanti.
Sekarang kita akan salin default.conf
menggunakan perintah cp
, silahkan teman-teman jalankan perintah dibawah ini :
sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/website1.com.conf
Perintah diatas, digunakan untuk meng-copy file default.conf
yang berada di dalam /etc/nginx/conf.d dan kita taruh di /etc/nginx/sites-available/ dengan nama website1.com.conf
.
Sekarang kita akan sesuaikan beberapa Server Block di website1.com.conf
, silahkan jalankan perintah dibawah ini :
sudo nano /etc/nginx/sites-available/website1.com.conf
SIlahkan ubah menjadi seperti berikut ini :
server {
listen 80;
server_name website1.com www.website1.com;
location / {
root /var/www/html/website1.com;
index index.html index.htm;
try_files $uri $uri/ =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Simpan file dengan cara CTRL
+ X
kemudian klik Y
.
Dari perubahan diatas, disini kita sudah melakukan perubahan di 3 baris
saja.
-
server_name
- harus sesuai dengan nama domain dari situs web pertama kita. Pastikan untuk memasukkan alamat dengan dan tanpa www.
Dalam contoh kita, server_name
akan menjadi:
server_name website1.com www.website1.com;
-
root
- untuk ini adalah tempat website kita ditempatkan, silahkan arahkan ke direktori dimana kita menyimpan file website kita.
root /var/www/html/website1.com;
-
try_files
- untruk try file kita tambahkan kurang lebih seperti berikut ini :
try_files $uri $uri/ =404;
Ulangi proses untuk Server Block kedua sambil mengubah detail agar sesuai dengan situs website2.com
.
sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/website2.com.conf
sudo nano /etc/nginx/sites-available/website2.com.conf
Ubahlah Server Block menjadi seperti berikut ini :
server {
listen 80;
server_name website2.com www.website2.com;
location / {
root /var/www/html/website2.com;
index index.html index.htm;
try_files $uri $uri/ =404;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
Simpan file dengan cara CTRL
+ X
kemudian klik Y
.
Langkah 6 - Mengaktifkan File Server Block
Untuk mengaktifkan file virtual host, buatlah symlink ke direktori sites-enabled dengan perintah:
sudo ln -s /etc/nginx/sites-available/website1.com.conf /etc/nginx/sites-enabled/website1.com.conf
sudo ln -s /etc/nginx/sites-available/website2.com.conf /etc/nginx/sites-enabled/website2.com.conf
Sekarang kita restart Nginx kita :
sudo systemctl restart nginx
Langkah 7 - Uji Coba Server Block
Untuk memverifikasi pengaturan Server Block kita tadi, buka browser dan ketik URL domain pertama:
www.website1.com
Jika berhasil, kurang lebih tampilannya seperti berikut ini :
www.website2.com
Jika berhasil, kurang lebih tampilannya seperti berikut ini :
KESIMPULAN
Pada artikel kali ini kita semua mencoba belajar bagaimana membuat sebuah Serve Block untuk memanajemen beberapa domain di Nginx menggunakan CentOS 8 / RHEL 8.
Terima Kasih