Konfigurasi Virtual Host atau Server Block di Web Server Nginx
Konfigurasi Virtual Host atau Server Block di Web Server Nginx – Ketika anda menggunakan web server Nginx, Server Block berfungsi untuk menyembunyikan detail konfigurasi dan dapat menghosting lebih dari satu domain pada satu server yang sama. Hal ini tentu berguna untuk anda yang ingin melakukan penghematan agar tidak membeli hosting untuk website yang baru.
Pada kesempatan kali ini, tutorial ini akan membahas bagaimana cara mengkonfigurasikan web server Nginx yang sebelumnya sudah kita install. Pastikan anda sudah mengikutin tutorial sebelumnya
- Tutorial Install Web Server Nginx di Linux Centos 7
- Tutorial Install LEMP Stack (Linux, Nginx, MySql, dan PHP) di Centos 7
Jika anda sudah melakukan tutorial diatas maka anda dapat melanjutkan tutorial ini. Pada tutorial kali ini akan digunakan dua domain yaitu example.com dan test.com.
Pertama – Mengatur Direktori Root Dokumen Baru
Secara default, Web server Nginx di sistem operasi Centos 7 sudah mengizinkan server block. Lokasi direktori root untuk dokumen baru biasanya terletak pada /var/www/html
. Tetapi dikarenakan kita akan menggunakan dua domain pada satu server maka harus ada perbedaan lokasi direktori root untuk dokumen setiap domainnya.
Untuk mempermudah dalam penataan dokumen maka kedua domain tersebut akan masing – masing dibuatkan folder yang berbeda yaitu
- /var/www/example.com/html – untuk direktori root domain example.com
- /var/www/test.com/html – untuk direktori root domain test.com
Untuk pembuatannya silahkan ketikkan perindah dibawah ini
sudo mkdir -p /var/www/example.com/html sudo mkdir -p /var/www/test.com/html
Sekarang kita sudah memiliki dua direktori root untuk kedua domain kita, langkah selanjutnya adalah merubah hak kepemilikan dari folder tersebut. Dikarenakan sebelumnya kita menggunakan perintah sudo
maka kepemilikan saat ini adalah milik user root
.
Oleh karena itu untuk menjaga keamanan dan kemudahan pengeditan selanjutnya maka kita rubah kepemilikan folder tersebut menjadi user yang saat ini kita gunakan dengan menggunakan perintah dibawah ini
sudo chown -R $USER:$USER /var/www/example.com/html sudo chown -R $USER:$USER /var/www/test.com/html
Perlu diperhatikan, $USER
adalah user yang saat ini sedang kalian gunakan dan pastikan itu adalah bukan root
.
Setelah selesai maka hak kepemilikan direktori root sekarang sudah berubah. Hal ini dapat anda pastikan dengan mengetikkan perintah dibawah ini
sudo chmod -R 755 /var/www
Direktori root untuk dokumen baru sudah selesai dikonfigurasi. Kita dapat melakukan langkah selanjutnya.
Kedua – Membuat tampilan sederhana untuk kedua domain
Ketika kedua dokumen root domain sudah siap digunakan, kita butuh sesuatu untuk memastikan semuanya berjalan dengan baik dan dapat menampilkan tampilan sederhana untuk kedua domain tersebut.
Buatlah sebuah file bernama index.html
pada domain example.com dengan mengetikkan perintah dibawah ini
vi /var/www/example.com/html/index.html
Untuk memulai memasukkan text anda silahkan tekan tombol insert
pada keyboard anda.
Apabila sudah selesai mengetikkan nama tekan esc
kemudian ketikkan :wq
untuk keluar dari editor vi
. Anda juga langsung bisa membuat file html sederhana seperti dibawah ini
<html> <head> <title>Welcome to Example.com!</title> </head> <body> <h1>Success! The example.com server block is working!</h1> </body> </html>
Kemudian untuk contoh tampilan sederhana domain test.com kita dapat melakukan copy pada file index.html yang sebelumnya kita buat untuk domain example.com.
cp /var/www/example.com/html/index.html /var/www/test.com/html/
Agar memiliki tampilan pada domain test.com berbeda maka kita rubah sedikit file index.html dengan menggunakan editor vi
seperti sebelumnya sehingga menjadi seperti dibawah ini
<html> <head> <title>Welcome to Test.com!</title> </head> <body> <h1>Success! The test.com server block is working!</h1> </body> </html>
Sampai disini kita memiliki tampilan yang berbeda di kedua domain yang kita gunakan.
Ketiga – Membuat file untuk Server Block
File server block ini adalah file yang akan memisahkan dan menentukan konfigurasi situs yang berbeda dan menentukan bagaimana web server Nginx akan menanggapi berbagai permintaan domain tersebut.
Untuk memulai, kita perlu mengatur direktori yang akan disimpan oleh web server, serta direktori yang memberi tahu Nginx bahwa server block siap untuk melayani pengunjung. Direktori sites-available
di situs akan menyimpan semua file server block, sementara direktori sites-enabled
akan menyimpan tautan simbolik ke server block yang ingin kami publikasikan. Kita bisa membuat kedua direktori dengan mengetikkan
sudo mkdir /etc/nginx/sites-available sudo mkdir /etc/nginx/sites-enabled
Selanjutnya, kita harus memberi tahu Nginx untuk mencari blok server di direktori sites-available
. Untuk mencapai hal ini, kita akan mengedit file konfigurasi utama Nginx dan menambahkan baris yang menyatakan direktori opsional untuk file konfigurasi tambahan
sudo vi /etc/nginx/nginx.conf
kemudian tambahkan perintah dibawah ini pada baris akhir http {}
include /etc/nginx/sites-enabled/*.conf; server_names_hash_bucket_size 64;
Baris pertama pada perintah diatas adalah menginstruksikan web server Nginx untuk mencari server block di direktori site-enabled
, sementara untuk baris kedua berfungsi untuk meningkatkan jumlah memori yang digunakan untuk pencarian nama domain (karena saat ini kita menggunakan dua domain).
Jika sudah melakukan perubahan tersebut maka keluar dengan menekan esc
kemudian ketikkan :wq
.
Membuat Server Block Pertama
Secara default, Web Server Nginx memiliki satu server block yang dinamakan default.conf
yang mana dapat kita gunakan untuk template konfigurasi kita nantinya. Untuk mempermudah konfigurasi server block yang pertama maka akan kita gunakan template tersebut
sudo cp /etc/nginx/conf.d/default.conf /etc/nginx/sites-available/example.com.conf
kemudian buka dan edit file example.com.conf
sudo vi /etc/nginx/sites-available/example.com.conf
Abaikan semua baris yang memiliki comment, sehingga isi file akan tampil seperti dibawah ini
server { listen 80; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
Hal yang pertama harus kita konfigurasikan adalah server_name
yang mana berfungsi untuk memberitahukan Nginx dimana block server berada. Pada tutorial ini menggunakan example.com
dan menambahkan alias untuk domain tersebut menjadi www.example.com
hal ini bermanfaat agar tetap melayani pencarian baik menggunakan www maupun tidak.
server_name example.com www.example.com;
Pastikan anda menggunakan ; pada akhir perintah tersebut.
konfigurasi selanjutnya adalah lokasi direktori root yang sebelumnya sudah kita buat yaitu /var/www/example.com/html
root /var/www/example.com/html;
ketika kamu sudah selesai melakukan konfigurasinya maka akan tampil seperti dibawah ini
server { listen 80; server_name example.com www.example.com; location / { root /var/www/example.com/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; } }
Sampai disini konfigurasi server block pertama telah selesai dilakukan.
Membuat Server Block Kedua
Untuk mempermudah melakukan konfigurasi, kita akan mengcopy file server block pertama dan kemudian melakukan edit
sudo cp /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-available/test.com.conf
kemudian buka file server block kedua dengan menggunakan perintah vi
sudo vi /etc/nginx/sites-available/example2.com.conf
Lakukan konfigurasi seperti halnya server block pertama tetapi sesuaikan dengan kondisi saat ini yaitu berada pada server block kedua, sehingga akan menghasilkan file konfigurasi seperti dibawah ini
server { listen 80; server_name test.com www.test.com; location / { root /var/www/test.com/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; } }
Setelah selesai melakukan perubahan, silahkan keluar dengan menekan tombol esc
dan kemudian mengetikkan :wq
agar keluar dari editor vi
.
Keempat – Mengaktifkan File Server Block Baru
Langkah selanjutnya adalah mengaktifkan file server block yang baru saja kita buat sehingga web server Nginx bahwa pengunjung sudah dapat dilayani dan ditujukan ke server block yang tersedia. ketikkan perintah dibawah ini untuk mengaktifkannya
sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf sudo ln -s /etc/nginx/sites-available/test.com.conf /etc/nginx/sites-enabled/test.com.conf
Agar konfigurasinya berjalan silahkan restart services Nginx anda
sudo systemctl restart nginx
Kelima – Mengatur File Hosts Lokal (Opsional)
Jika anda melakukan tutorial ini pada webserver lokal anda maka pengaturan file hosts pada localhost anda perlu dilakukan sehingga anda dapat menjalankannya secara langsung tanpa harus membeli domain atau hosting yang tersedia di internet. silahkan rubah file hosts
yang berada pada /etc/hosts
dengan menggunakan editor vi
sudo vi /etc/hosts
kemudian tambahkan ip address server localhost anda dan nama dari kedua domain yang dilakukan pada tutorial kali ini, sehingga akan menjadi seperti dibawah ini
127.0.0.1 localhost 127.0.1.1 guest-desktop server_ip_address example.com server_ip_address test.com
Sehingga apabila anda ingin mengakses domain example.com maka akan dilarikan kealamat server_ip_address begitupun halnya ketika anda ingin mengakses domain test.com.
Keenam – Lihat Hasilnya
Setelah menjalani segala langkah – langkah konfigurasi server block diatas dengan baik dan benar maka seharusnya web server anda sudah dapat diakses dengan baik. Hal ini dibuktikan dengan apabila anda mengakses http://example.com pada alamat browser anda maka akan tampil seperti pada gambar dibawah ini
Dengan demikian Konfigurasi Virtual Host atau Server Block di Web Server Nginx telah selesai dilakukan.