Mengelola website di server tanpa menggunakan control panel seperti cPanel atau CWP bukanlah hal yang mudah, sebab ketika ingin melakukan sesuatu seperti konfigurasi atau setting perlu masuk ke terminal root vps terlebih dahulu. Ada kalanya ingin menambah website di dalam 1 VPS, bagaimana caranya? Bisa menggunakan metode Virtual Host, pada artikel ini kami ingin membahas mengenai Cara Konfigurasi Virtual Host di Nginx.

Sedikit Tentang Nginx

Nginx adalah server HTTP atau Proxy dan salah satu web server yang populer digunakan yang bersifat Open Source. Ketika awal dirilis, Nginx hanya berperan sebagai server HTTP untuk web serving saja, namun belakangan ini sering digunakan sebagai Reserve Proxy, Load Balancer, Back-End Web Server dan lain-lain. 

Sebelum memulai proses Virtual Host, kamu perlu siapkan VPS yang sudah di install Nginx atau Stack seperti LEMP. Kamu bisa ikuti referensi berikut:

Cara Install LEMP Stack di CentOS 7 

Jika sudah di install, langsung ke proses selanjutnya.

Konfigurasi Virtual Host di Nginx

Di sini, kami ingin menggunakan 2 domain, yang pertama adalah primary.dewiweb.net dan yang kedua adalah secondary.dewiweb.net.

Sesuai dengan namanya, primary.dewiweb.net adalah domain utama, sedangkan secondary.dewiweb.net adalah domain kedua. 

Step 1 – Edit Konfigurasi Nginx

Supaya bisa menggunakan virtual host, kamu perlu ubah konfigurasi nginx, ikuti instruksi di bawah ini.

$ nano /etc/nginx/nginx.conf

Tambahkan script di bawah ini persis di bawah “include /etc/nginx/conf.d/*.conf;”

include /etc/nginx/sites-enabled/*;

Hal tersebut bertujuan supaya konfigurasi virtual host yang dilakukan di sites-available dan sites-enabled dapat terbaca oleh Nginx.

Sites-available tidak di include karena nantinya akan dibuat symlink file ke sites-enabled.

Step 2 – Buat Directory Konfigurasi Virtual Host

Jika sebelumnya sudah dilakukan penambahan include, selanjutnya membuat directory sites-available dan sites-enabled:

$ mkdir -p /etc/nginx/sites-available/

$ mkdir -p /etc/nginx/sites-enabled/

Jangan lupa juga untuk ubah ownership dan permissionnya:

$ chmod 755 /etc/nginx/sites-available/

$ chmod 755 /etc/nginx/sites-enabled/

Step 3 – Buat Directory

Buat directory untuk kedua website tersebut menggunakan command di bawah ini.

$ mkdir -p /var/www/primary.dewiweb.net/

$ mkdir -p /var/www/secondary.dewiweb.net/

Step 4 – Ownership dan Permission

Ubah ownership nya supaya bisa ada permission mengakses ke directory tersebut.

$ chown -R nginx:nginx /var/www/primary.dewiweb.net/

$ chown -R nginx:nginx /var/www/secondary.dewiweb.net/

$ chmod -R 755 /var/www/

Step 5 –  Buat File

Untuk memastikan konfigurasi virtual hostnya nanti sesuai, perlu buat file website yang simple untuk menunjukan perbedaan directory antara primary dan secondary.

$ nano /var/www/primary.dewiweb.net/index.html

Tambahkan script untuk primary di bawah ini:

<html>

    <head>

<title>primary.dewiweb.net</title>

    </head>

    <body>

<h1>Primary.dewiweb.net is working!</h1>

        <b>This is primary.dewiweb.net site</b>

    </body>

</html>


Save dan Exit.

$ nano /var/www/secondary.dewiweb.net/index.html

Tambahkan script untuk secondary di bawah ini:

<html>

    <head>

<title>secondary.dewiweb.net</title>

    </head>

    <body>

<h1>Secondary.dewiweb.net is working!</h1>

        <b>This is secondary.dewiweb.net site</b>

    </body>

</html>

Save dan Exit.

Step 6 – Buat Konfigurasi Domainnya

Untuk memisahkan directory perlu buat konfigurasi server block atau virtual host nya. Ikuti instruksidi bawah ini.

Konfigurasi untuk primary domain:

$ nano /etc/nginx/sites-available/primary.dewiweb.net

Tambahkan script berikut:

server {

        listen 80;

        listen [::]:80;

        root /var/www/primary.dewiweb.net/;

        index index.html index.htm index.nginx-debian.html;

        server_name primary.dewiweb.net www.primary.dewiweb.net;

        location / {

                try_files $uri $uri/ =404;

        }

}

Save dan Exit.

Konfigurasi untuk secondary domain:

$ nano /etc/nginx/sites-available/secondary.dewiweb.net

Tambahkan script berikut:

server {

        listen 80;

        listen [::]:80;

        root /var/www/secondary.dewiweb.net/;

        index index.html index.htm index.nginx-debian.html;

        server_name secondary.dewiweb.net www.secondary.dewiweb.net;

        location / {

                try_files $uri $uri/ =404;

        }

}

Save dan Exit.

Step 7 – Buat Symlink

Langkah selanjutnya buat symlink sesuai di bawah ini.

$ ln -s /etc/nginx/sites-available/primary.dewiweb.net /etc/nginx/sites-enabled/

$ ln -s /etc/nginx/sites-available/secondary.dewiweb.net /etc/nginx/sites-enabled/

Verifikasi Nginx untuk mengetahui ada syntax yang error atau tidak pada konfigurasi yang sudah diubah:

$ nginx -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

Jika syntax is ok tandanya tidak ada syntax yang error.

Kemudian restart Nginx

$ systemctl restart nginx

Jika step-stepnya sudah ikuti, coba akses websitenya.

Primary.dewiweb.net:

Secondary.dewiweb.net:

Kalau sudah seperti ini tandanya Konfigurasi Virtual Host di Nginx sudah berhasil!

Kesimpulan

Server Blocks atau Virtual Host ini biasanya diperlukan supaya tidak boros VPS, cukup pakai 1 dan bisa berbagi resources. 

Setelah itu, kamu bisa instalasi CMS yang sama atau CMS yang berbeda. Kamu bisa lihat referensi di bawah ini untuk instalasi CMS WordPress dan Magento.

Demikian artikel cara konfigurasi virtual host di Nginx, jangan sungkan untuk meninggalkan ide-ide topik yang ingin kamu baca di blog Dewaweb. Semoga artikel ini membantu!

Daftar dan tonton webinar Dewatalks