Ada banyak sekali aplikasi atau cara untuk men-deploy sebuah web server. Yang paling umum digunakan pada environment Production, tidak jauh dari Nginx ataupun Apache2.
Pada tutorial ini, penulis akan memaparkan guide cara deploy web server pada OS Linux Ubuntu Server menggunakan Nginx. Pastikan server Ubuntu kalian sudah dapat akses ke Internet.
Prerequisites:
- Server Ubuntu
- Akses internet dari server Ubuntu
- Privileges sudo pada user di server Ubuntu
- (Optional) Cek konfigurasi firewall (Jika ada) ke arah server Ubuntu, pastikan port 80 sudah open
Step:
Akses VM atau server Ubuntu, bisa menggunakan Console atau SSH. Pada guide ini, penulis akan menggunakan SSH sebagai akses ke server.
Update repository pada server Ubuntu, untuk memastikan semua package yang akan kita install, sudah menggunakan versi terbaru.
sudo apt updateInstall package Nginx pada server Ubuntu.
sudo apt install nginxJika ada prompt ‘Do you want to continue?’, karena kita betul ingin menginstall package tersebut. Ketik Y, lalu Enter.
Tunggu hingga proses instalasi Nginx selesai.Pada logs instalasi di atas, nginx sudah berhasil terinstall dan membuat service nginx sendiri. Kita bisa cek apakah saat ini service nginx sudah menyala atau belum dengan command berikut:
sudo systemctl status nginxBisa dilihat, saat ini status service nginx saat ini ‘Active’, yang berarti Nginx sudah berhasil terinstall dan menyala.
Kita bisa cek service Nginx saat ini menyala pada port berapa dengan command berikut:
sudo ss -tlpnJika ada yang sudah familiar dengan command ‘netstat’, ss ini merupakan utilisasi yang sama, hanya saja versi lebih baik. Jadi, option atau argumen yang bisa digunakan sama.
Untuk pengecekan langsung apakah web server sudah bekerja, kita bisa menggunakan command:
curl localhostCommand curl akan mengambil semua data pada url target, di sini kita menargetkan ke localhost atau server Ubuntu ini sendiri. sehingga data yang diambil merupakan dari web server Nginx.
Bisa dilihat dari hasil curl, bahwa web server sudah menyala dengan baik sehingga curl dapat memberikan output.
Berikut dilampirkan hasil pengecekan jika web server diakses melalui browser. Tampilan ini merupakan tampilan default web server Nginx, kita dapat mengubahnya sesuai keinginan kita nanti.
Kita deploy custom website kita sendiri.
Perlu diketahui terlebih dahulu, Nginx menaruh file konfigurasi web server pada /etc/nginx/sites-available/ dan /etc/nginx/sites-enabled/. File konfigurasi pada …/sites-enabled/ ialah yang aktif digunakan oleh Nginx dan merupakan symlink dari …/sites-available/.
Konfigurasi web server template awal muncul, berlokasi di /etc/nginx/sites-enabled/default. Kita disable terlebih dahulu konfigurasi default tersebut agar tidak bertabrakan dengan konfigurasi yang akan kita buat.
sudo rm /etc/nginx/sites-enabled/defaultCopy file konfig default pada sites-available, ubah menjadi konfigurasi milik kalian sendiri
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/web-server.confEdit file konfig tersebut, arahkan cursor ke bawah, lalu cari root. Ubah root ke path Dimana file html yang akan kita deploy berada. Pada contoh ini, kita akan taruh di /var/www/web-server. Lalu Save
sudo nano /etc/nginx/sites-available/web-server.conf Edit bagian root ctrl-x YKita buat folder /var/www/web-server yang akan digunakan untuk menyimpan file html, lalu ubah access folder menjadi 755, agar nginx memiliki akses ke folder tersebut.
sudo mkdir -p /var/www/web-server sudo chmod -R 755 /var/www/web-serverUpload file html ke dalam folder tersebut, atau kita buat terlebih dahulu file html sederhana.
echo ‘<html><body><h1>Hello World!</h1></body></html>’ | sudo tee /var/www/web-server/index.htmlSetelah semua sudah pada tempatnya, kita enable terlebih dahulu konfigurasi yang sebelumnya kita buat.
sudo ln -s /etc/nginx/sites-available/web-server.conf /etc/nginx/sites-enabled/Reload nginx, agar perubahan konfigurasi terbaca.
sudo nginx -s reloadLakukan test akses ke web server yang kita custom.
curl localhostAkses melalui browser
- Bisa dilihat bahwa web server kita saat ini sudah menggunakan html yang kita masukan sebelumnya, baik jika diakses melalui curl maupun browser.