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.
- Cara Instalasi WordPress dengan LEMP Stack [link artikel]
- Cara Instalasi Magento2 di CentOS 7 [link artikel]
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!