Beranda Web 101 Bagian 4 - Mempersiapkan Web Server Nginx
Postingan
Batal

Web 101 Bagian 4 - Mempersiapkan Web Server Nginx

Ikhtisar

Sampai tahap ini, kita harus memiliki nama domain dan server, dan nama domain harus diarahkan ke alamat IP server melalui DNS record. Sebagaimana yang saya katakan di postingan sebelumnya, dalam seri tulisan ini instruksi yang akan saya buat adalah untuk Debian, distribusi linux lain mungkin bisa menyesuaikan.

Masuk ke server

Pertama, kita ingin masuk ke server VPS kita agar mendapatkan akses melalui terminal bash di mana kita bisa mengatur server web. Disini aku mengasumsikan kamu memakai linux atau MacOs dan tahu caranya membuka terminal. Untuk di Windows, kamu juga bisa menggunkan PuTTY atau bisa seperti aku, yang menggunakan Windows Subsytem for Linux.

Sekarang buka terminal di komputer lokalmu, dan ketik

1
ssh root@namadomainmu.org

Perintah ini akan melakukan koneksi login ke server. Kemudian akan muncul sebuah prompt menyuruh kamu untuk memasukkan password, kamu bisa memasukkan password yang sudah kamu buat sebelumnya di DigitalOcean saat pembuatan droplet.

Kalau kamu mengalami error, mungkin terdapat masalah di dalam DNS record. Coba cek lagi di bagian management dns. Sebagai tips kamu juga bisa mengganti namadomainmu.org dengan alamat IP servermu, tapi kalau bisa diusahakan pakai nama domain, segera perbaiki management dns mu.

Menginstall Webserver Nginx

Kalau kamu tidak mengalami error, sekarang kamu sudah masuk ke dalam server menggunakan program ssh. Mari kita mulai mengupdate, mengupgrade dan menginstall nginx, ketikan perintah berikut di terminal

1
2
3
apt update
apt upgrade
apt install nginx

Perintah pertama mengecek apakah ada package yang bisa diupdate, dan perintah yang kedua menginstall package yang bisa diupdate.

Perintah ketiga adalah untuk menginstall nginx (dibaca Engine-X) yang mana webserver yang akan kita gunakan, beserta dependensi-dependensi yang dibutuhkan nginx.

Konfigurasi nginx

Nginx adalah webservermu. Kamu bisa membuat situs web, kemudian copy ke VPSmu, lalu beritahu nginx di mana letaknya dan nginx akan menghost situs webmu tadi. Sangat simpel, mari kita buat konfigurasinya.

File konfigurasi nginx ada di /etc/nginx. Ada dua subdirektori utama di sana (mungkin turunan Debian seperti Ubuntu juga sama) yaitu /etc/nginx/sites-available dan /etc/nginx/sites-enabled. Namanya sudah cukup deskriptif, secara sederhananya kamu bisa membuat file konfigurasi di sites-available dan ketika sudah siap, kamu bisa membuat linking ke sites-enabled yang akan mengaktifkan konfigurasi tadi.

Pertama, mari kita buat pengaturan untuk situs web kita. Kamu bisa copas dan rubah sesuai kebutuhan, aku juga akan menjelaskan apa yang dilakukan baris-baris tersebut.

Buat sebuah file di etc/nginx/sites-available.

1
vi /etc/nginx/sites-available/webku

Perhatikan bahwa vi adalah teks editor di command line. Dengan begitu sekarang kamu bisa membuat dan mengedit file tersebut. Perhatikan juga disitu saya membuat nama filenya webku, kamu bisa menggantinya terserah dengan nama yang kamu suka.

Aku akan menambahkan isi konten berikut ke dalam file tadi

1
2
3
4
5
6
7
8
9
10
server {
        listen 80 ;
        listen [::]:80 ;
        server_name example.org ;
        root /var/www/webku ;
        index index.html index.htm index.nginx-debian.html ;
        location / {
                try_files $uri $uri/ =404 ;
        }
}

Penjelasan

Baris listen menyuruh nginx untuk mendengarkan koneksi dari IPv4 dan IPv6

server_name adalah nama server yang akan ditunjuk oleh konfigurasi ini. Contohnya dengan memasukkan ang.my.id di sini, berarti setiap kali seseorang menghubungkan ke server ini dan mencari alamat tersebut, mereka akan diarahkan ke konten yang ada di dalam blok ini.

root menentukan direktori di mana kita akan meletakkan file situs web kita. Secara teoritis ini bisa di mana saja, tapi umumnya diletakkan di /var/www. Silahkan disitu beri nama direktori yang kamu inginkan

index menentukan apa yang menjadi default. Biasanya saat kamu pergi ke suatu situs web, misalnya ang.my.id maka kamu sebenarnya akan menuju ke file ang.my.id/index.html.

Terakhir location memberi tahu server bagaimana cara mencari file yang diminta oleh pengunjung situs. “location” menentukan lokasi file yang dicari, dalam contoh ini, lokasinya adalah root atau “/”. Kemudian, perintah “try_files” akan mencoba mencari file yang diminta dengan URI yang diberikan ($uri) dan jika file tersebut tidak ditemukan, akan mencoba mencari file dengan URI yang diikuti tanda “/” ($uri/). Jika kedua file tersebut juga tidak ditemukan, maka akan dikembalikan kode eror 404(“=404”).

Membuat direktori dan index situs

Mari kita membuat sebuah halaman situs sederhana yang akan muncul saat seseorang mencari domain tersebut.

1
mkdir /var/www/webku

Sekarang mari kita buat file index di dalam direktori tersebut yang nantinya akan muncul saat situs web diakses:

1
vi /var/www/webku/index.html

Aku akan menambahkan halaman dasar html, kamu bisa menambahkannya sesuai dengan selera kamu. file html inilah nanti yang akan muncul, saat seseorang mengakses webmu.

1
2
3
4
<!DOCTYPE html>
<h1>Websiteku</h1>
<p>Selamat datang di website aku, terimkasih telah berkunjung</p>
<p>Sekarang website ini bisa diakses melalui internet</p>

Linking ke sites-enabled

Setelah kamu menyimpan file tersebut, kita dapat mengaktifkannya dengan membuat link ke direktori sites-enabled.

1
ln -s /etc/nginx/sites-available/webku /etc/nginx/sites-enabled

Sekarang kita dapat melakukan reload atau restart, agar nginx melayani konfigurasi yang telah kita buat

1
systemctl reload nginx

Firewall

Pertama-tama install terlebih dahulu prograf ufw, ufw merupakan sebuah prograf firewall dengan mengetikkan perintah

1
apt install ufw

Kita harus membuka port 80 dan port 443 seperti perintah di bawah:

1
2
ufw allow 80
ufw allow 443

Port 80 merupakan port bawaan untuk webserver, sedangkan 443 merupakan port yang digunakan untuk koneksi yang terenkripsi.

Panduan keamanan

Secara default, nginx dan web server lain secara otomatis akan menampilkan nomor versi mereka di halaman eror. Sangat disarankan untuk menghide nomor versi tersebut, karena seseorang bisa saja menemukan suatu exploit di nginx versi tertentu dan bisa saja mengexploit webserver punyamu, oleh karena itu hide versi nginx mu. Edit file /etc/nginx/nginx.conf, dan temukan baris # server_tokens off;. hapus tanda pagar, dan reload nginx.

Pastikan webserver kamu selalu up to date untuk mendapatkan pembaruan security terbaru.

Sekarang web kamu sudah jalan

Pada saat ini , kamu sekarang bisa mengetikan alamat situs web kamu di browser, dan halaman web ini akan muncul!

halaman web

Perhatikan ada tulisan Not secure di notifikasi. Postingan selanjutnya akan memberikan langkah-langkah bagaimana mengenkripsi koneksi ke web kamu.

Postingan ini dilisensikan di bawah CC BY 4.0 oleh penulis.