Cara Membuat Virtual Host Nginx (Server Blocks) di Centos 8 / RHEL 8


Cara Membuat Virtual Host Nginx (Server Blocks) di Centos 8 / RHEL 8

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:

  • Sites-available - untuk menyimpan blok server.

  • Sites-enabled - akan memberi tahu Nginx domain mana yang akan dipublikasikan dan blok mana yang membagikan konten kepada pengunjung.

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


Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami