David Kurniawan A Technical Content Writer at Niagahoster, specializing in Virtual Private Servers (VPS), WordPress, and Internet Marketing. David is eager to help people to improve their business on the internet.

Cara Membuat Virtual Host di CentOS

7 min read

Virtual host merupakan cara untuk mengatur banyak website atau URL di dalam satu server VPS. Fungsi virtual host adalah  menyediakan ruang penyimpanan untuk konten digital agar dapat diakses oleh user melalui web browser. Dengan adanya virtual host, Anda bisa menggunakan beberapa domain dalam satu server VPS.

Dalam panduan ini, kami akan membahas dua cara membuat Virtual Host di CentOS, yaitu pada web server Apache dan Nginx.

Cara Membuat Virtual Host di CentOS Menggunakan Apache

Untuk langkah-langkah membuat virtual host di Apache, Anda dapat mengikuti panduan di bawah ini.

Langkah 1 Install Apache

Pertama, sebelum Anda membuat virtual host di Apache, pastikan server CentOS Anda sudah terinstall Apache. Apabila Anda belum melakukan instalasi Apache, masukkan perintah ini untuk memulai instalasi Apache pada CentOS:

# sudo yum install httpd

Tunggu hingga proses instalasi selesai.

Langkah 2 Cek Instalasi Apache

Setelah proses instalasi Apache selesai, jalankan Apache pada server Anda dengan cara manual, berikut ini perintahnya.

# sudo systemctl start httpd

Untuk memastikan web server sudah berjalan pada CentOS, masukkan perintah berikut:

# sudo systemctl status httpd

Perintah di atas akan menghasilkan output seperti pada gambar di bawah ini.

Selain cara di atas,, Anda juga bisa melakukan pengecekan dengan cara mengakses IP server atau domain Anda. Setelah berhasil mengakses IP server atau domain, akan muncul tampilan default web server Apache seperti ini:

Langkah 3 Buat Direktori Baru

Selanjutnya, Anda perlu membuat struktur pada direktori web server yang akan digunakan untuk menyimpan data situs website.

Lokasi tempat untuk menyimpan data website di Apache ada di dalam direktori /var/www/html. Lalu di dalam direktori /var/www/html, Anda perlu membuat folder public_html untuk menyimpan file dan script untuk menjalankan website. 

Berikut ini perintah untuk membuat direktori:

# sudo mkdir -p /var/www/html/public_html

Kemudian, buat direktori log untuk menyimpan perintah file error dan aktivitas perubahan pada server. Berikut perintahnya.

# sudo mkdir -p /var/www/html/log

Langkah 4 Berikan Akses Permissions

Selanjutnya, untuk dapat memodifikasi file di dalam direktori, Anda perlu mengganti akses permissions yang masih dimiliki oleh user root Dengan begitu, user biasa dapat mengubah file di dalam direktori /var/www/html/.

Berikut adalah perintah untuk memberi akses permissions:

sudo chown -R $USER:$USER /var/www/html/public_html

Variabel $USER akan mengambil nilai dari user saat ini yang sedang aktif saat tombol ENTER ditekan. Sekarang server yang Anda gunakan dapat menambah atau mengubah konten yang ada didalam direktori /var/www/html.

Langkah 5 Buat Halaman Demo Untuk Virtual Host

Selanjutnya, Anda perlu membuat halaman demo dari HTML. Fungsi  halaman ini adalah untuk keperluan demo website yang akan ditambahkan pada virtual host.

Masuk ke dalam direktori public_html yang telah dibuat menggunakan perintah berikut.

# cd /var/www/html/public_html

Buat file di direktori public_html Pada panduan ini kami menggunakan nama file index.html Masukkan perintah berikut untuk membuat file:

# touch index.html

Lalu buka file index.html menggunakan perintah berikut.

# nano index.html

Setelah itu, salin kode HTML di bawah ini ke dalam file index.html. Lalu simpan menggunakan perintah Ctrl+X >> Y >> ENTER.

<!DOCTYPE html>
<html>
  <body>
	<h1>Selamat !!!</h1>
	<p>Pengaturan Virtual Host Berhasil.</p>
  </body>
</html>

Langkah 6 Buat File Virtual Host Baru

Sebelum membuat virtual host baru, Anda perlu membuat direktori sites-available untuk menyimpan file konfigurasi virtual host.  Anda juga harus membuat direktori sites-enabled yang berfungsi untuk memberikan informasi perubahan pada web server Apache.

Untuk membuat kedua direktori tersebut, masukkan perintah berikut:

# sudo mkdir /etc/httpd/sites-available /etc/httpd/sites-enabled

Setelah  menambahkan direktori sites-enabled, Anda perlu menambahkan kode di file httpd.conf untuk konfirmasi penambahan file sites-available dan site-enabled pada Apache. Buka file httpd.conf dengan cara berikut:

# sudo nano /etc/httpd/conf/httpd.conf

Lalu salin kode berikut, dan tambahkan ke dalam file httpd.conf seperti contoh pada gambar di bawah ini.

IncludeOptional sites-enabled/*.conf

Kemudian, simpan file menggunakan perintah Ctrl+X >> Y >> ENTER.

Setelah itu, buat file virtual host di dalam direktori sites-available. Pada panduan ini kami menggunakan nama file virtual host website-1.conf. Pastikan setiap file virtual host di Apache harus berakhiran dengan .conf. Berikut ini perintah untuk membuat file website-1.conf.

sudo nano /etc/httpd/sites-available/website-1.conf

Lalu masukkan kode di bawah ini.

<VirtualHost *:80>
    ServerName www.DomainAnda.me
    ServerAlias DomainAnda.me
    DocumentRoot /var/www/html/public_html
    ErrorLog /var/www/html/log/error.log
    CustomLog /var/www/html/log/requests.log combined
</VirtualHost>

Kode di atas akan memberikan informasi kepada Apache tempat Anda menyimpan file-file website yang dapat ditampilkan pada user. Selain itu, kode tersebut juga berfungsi memberi informasi kepada web server tentang error dan aktivitas perubahan pada virtual host.

Simpan kode di atas menggunakan perintah Ctrl+X >> Y >> ENTER.

Setelah membuat file virtual host, Anda harus mengaktifkannya agar domain yang Anda tambahkan pada file .conf bisa diakses. Berikut ini perintah yang perlu Anda masukkan.

sudo ln -s /etc/httpd/sites-available/website-1.conf /etc/httpd/sites-enabled/website-1.conf

Selanjutnya masukkan perintah berikut, untuk menetapkan kebijakan web server Apache.

# sudo setsebool -P httpd_unified 1

Berikut adalah keterangan dari kode perintah di atas:

  • setsebool: perintah untuk melakukan perubahan SELinux pada nilai boolean.
  • -P: perintah untuk memperbarui nilai boot-time.
  • httpd_unified: perintah untuk mengkonfirmasikan kepada SELinux bahwa semua proses Apache memiliki tipe yang sama.

Langkah 8 Cek Hasil Perubahan

Langkah  terakhir adalah restart web server Apache. Tujuannya adalah untuk mengkonfirmasi perubahan yang telah dibuat pada virtual host. Berikut ini perintah untuk restart Apache:

# sudo systemctl restart httpd

Untuk memastikan keberhasilan  dalam membuat virtual host, Anda dapat mengakses domain yang telah ditambahkan di dalam ServerName virtual host. Jika muncul tampilan seperti di bawah ini, artinya konfigurasi Anda berhasil.

Tampilan website di atas adalah hasil dari file index.html yang telah dibuat dalam direktori public_html.

Baca Juga: Konfigurasi Awal VPS CentOS 7

Cara Membuat Server Block (Virtual Host) di Nginx

Jika menggunakan Nginx, istilah yang digunakan adalah server block, bukan virtual host. Namun, fungsinya sama dengan virtual host, yaitu untuk melakukan konfigurasi apabila ingin menambahkan lebih dari satu domain dalam satu server.

Terdapat delapan langkah dalam membuat server block dalam Nginx dan berikut ini panduannya:

Langkah 1 Install Nginx

Langkah pertama dalam membuat Server Block adalah menambahkan repository ke server Anda menggunakan perintah berikut:

sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

Setelah menambahkan repository Nginx pada server, langkah selanjutnya adalah install Nginx menggunakan perintah berikut:

# sudo yum install nginx

Langkah 2 Cek Instalasi Nginx

Kemudian, aktifkan web server Nginx pada server Anda menggunakan perintah berikut:

# sudo systemctl enable nginx

Maka outputnya akan seperti pada gambar di bawah ini.

Setelah mengaktifkan Nginx, jalankan Nginx menggunakan perintah berikut:

# sudo systemctl start nginx

Kemudian, buka IP server Anda dan akan muncul tampilan website default Nginx seperti ini.

Langkah 3 Buat Direktori Baru

Selanjutnya, Anda perlu membuat struktur pada direktori server yang digunakan untuk menyimpan data situs website.

Lokasi tempat untuk menyimpan data website di Nginx ada di dalam direktori /var/www/html. Lalu di dalam direktori /var/www/html, Anda perlu membuat folder public_html untuk menyimpan file dan script untuk menjalankan website. 

Berikut ini perintah untuk membuat direktori:

# sudo mkdir -p /var/www/html/public_html

Langkah 4 Berikan Akses Permissions

Selanjutnya, untuk dapat memodifikasi file di dalam direktori, Anda perlu mengganti akses permissions yang masih dimiliki oleh user root Dengan begitu, user biasa dapat mengubah file di dalam direktori /var/www/html/.

Berikut ini perintah untuk memberi akses permissions:

sudo chown -R $USER:$USER /var/www/html/public_html

Variabel $USER akan mengambil nilai dari user saat ini yang sedang aktif saat tombol ENTER ditekan. Sekarang server yang Anda gunakan dapat menambah atau mengubah konten yang ada didalam direktori /var/www/html.

Langkah 5 Buat Halaman Demo Untuk Server Block

Kemudian, Anda perlu membuat halaman demo dari HTML. Fungsi  halaman ini adalah untuk keperluan demo website yang akan ditambahkan pada Server Block.

Masuk ke dalam direktori public_html yang telah dibuat menggunakan perintah berikut.

# cd /var/www/html/public_html

Buat file di direktori public_html Pada panduan ini kami menggunakan nama file index.html Masukkan perintah berikut untuk membuat file:

# touch index.html

Lalu buka file index.html menggunakan perintah berikut.

# nano index.html

Setelah itu, salin kode HTML di bawah ini ke dalam file index.html. Lalu simpan menggunakan perintah Ctrl+X >> Y >> ENTER.

<!DOCTYPE html>
<html>
  <body>
	<h1>Selamat!!!</h1>
	<p>Pengaturan Server Block Berhasil.</p>
  </body>
</html>

Langkah 6 Buat File Server Block Baru

Sebelum membuat server block baru, Anda perlu membuat direktori sites-available untuk menyimpan file konfigurasi server block.  Anda juga harus membuat direktori sites-enabled yang berfungsi untuk memberikan informasi perubahan pada web server Nginx.

Untuk membuat kedua direktori tersebut, masukkan perintah berikut:

# sudo mkdir /etc/nginx/sites-available /etc/nginx/sites-enabled

Setelah  menambahkan direktori sites-enabled, Anda perlu menambahkan kode di file nginx.conf untuk konfirmasi penambahan file sites-available dan site-enabled pada Apache. Buka file nginx.conf dengan cara berikut:

# sudo nano /etc/nginx/nginx.conf

Lalu salin kode berikut, dan tambahkan ke dalam file nginx.conf seperti contoh pada gambar di bawah ini.

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

Kemudian, simpan file menggunakan perintah Ctrl+X >> Y >> ENTER.

Selanjutnya adalah proses pembuatan server block baru di dalam web server Nginx. Nginx memiliki server block default bernama default.conf. Setting default ini dapat Anda salin isinya untuk membuat file server block baru untuk tiap domain Anda.

Pada panduan ini kami menggunakan nama server block website-2.conf. Setiap file Server Block harus berakhiran dengan .conf. Salin isi file default.conf ke dalam file website-2.conf menggunakan perintah berikut.

# sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/website-2.conf

Lalu buka file website-2.conf menggunakan perintah berikut.

nano /etc/nginx/sites-available/website-2.conf

isi dari file website-2.conf kurang lebih seperti pada gambar di bawah ini.

Pada file website-2.conf Anda dapat mengatur dan menambah beberapa kode baru agar sesuai dengan kebutuhan domain Anda. File website-2.conf akan membaca semua request di port 80 (port default HTTP).

Setelah itu, Anda perlu menambahkan kode Server_Name yang fungsinya untuk memberikan informasi domain apa yang akan menggunakan server block ini. Kode ini juga berfungsi untuk menentukan alamat lain yang ingin menggunakan server block ini. 

server_name DomainAnda.com www.DomainAnda.com;

Terakhir, Anda perlu mengatur Root server block agar dapat bekerja di dalam direktori public_html yang telah dibuat. 

Root /var/www/html/public_html

Pada panduan ini kami juga akan menambahkan kode perintah try_files. Perintah ini berfungsi untuk menampilkan keterangan error 404 jika ada kesalahan pada file atau direktori yang diinginkan tidak dapat ditemukan.

Berikut ini hasil akhir dari isi file website-2.conf. Anda bisa menyalin file di bawah ini ke dalam file server block Anda.

server {
    listen  80;

    server_name DomainAnda.com www.DomainAnda.com;

    location / {
        root  /var/www/html/public_html;
        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;
    }
}

Salin kode di atas ke dalam file server block yang telah Anda buat. Lalu simpan menggunakan perintah CTRL+X >> Y >> ENTER.

Langkah 7 Aktifkan File Server Block

Setelah  membuat file server block baru, Anda perlu mengaktifkan server block yang telah Anda buat.

Gunakan perintah di bawah ini untuk mengaktifkan server block yang baru Anda buat.

# sudo ln -s /etc/nginx/sites-available/website-2.conf /etc/nginx/sites-enabled/website-2.conf

Selanjutnya, untuk melakukan test kesalahan script yang  ditulis dalam file server block, Anda bisa menggunakan perintah berikut.

sudo nginx -t

Jika output yang muncul seperti gambar di atas, tahap berikutnya Anda bisa melakukan restart agar semua konfigurasi yang sudah diubah dapat diterapkan. Berikut perintah untuk me-restart Nginx.

sudo systemctl restart nginx

Langkah 8 Cek Hasil Perubahan

Terakhir, Anda perlu mengecek keberhasilan konfirgurasi yang telah dilakukan. Untuk melihat keberhasilan dalam membuat server block, Anda dapat mengakses domain yang telah ditambahkan di dalam Server_Name server block. Jika muncul tampilan gambar seperti di bawah ini, artinya konfigurasi Anda berhasil.

Tampilan website di atas adalah hasil dari file index.html yang telah dibuat dalam direktori public_html.

Kesimpulan

Adanya virtual host pada server dapat membantu Anda untuk membuat banyak website dalam satu server VPS. caranya adalah dengan mengikuti langkah-langkah di atas.

Semoga artikel ini membantu Anda untuk membuat virtual host pada CentOS. Jika memiliki pertanyaan, jangan sungkan untuk meninggalkan komentar pada kolom yang tersedia di bawah ini.


0
David Kurniawan A Technical Content Writer at Niagahoster, specializing in Virtual Private Servers (VPS), WordPress, and Internet Marketing. David is eager to help people to improve their business on the internet.

Leave a Reply

Your email address will not be published. Required fields are marked *

19 − 10 =