Apa Itu Web Server?
Web server bagaikan gerbang digital yang menghubungkan website Kita dengan pengguna di seluruh dunia. Ia berfungsi sebagai perantara, menerima permintaan HTTP dari browser, memprosesnya, dan mengirimkan kembali konten website yang sesuai. Sederhananya, bayangkan web server sebagai rak buku raksasa di perpustakaan internet, di mana setiap buku mewakili halaman website Kita.
Jenis-Jenis Web Server
Berbagai web server hadir dengan keunggulannya masing-masing:
Apache: Pilihan populer dengan komunitas besar dan dokumentasi lengkap.
Nginx: Terkenal ringan, cepat, dan efisien, ideal untuk website dengan traffic tinggi.
Lighttpd: Server web minimalis yang hemat sumber daya, cocok untuk server dengan spesifikasi rendah.
IIS (Internet Information Services): Solusi terintegrasi untuk Windows Server.
Pointing Domain ke WebServer Menggunakan Nginx di Ubuntu 22.04
- Langkah pertama yaitu kita install terlebih dahulu nginx
Sudo apt updateSudo apt install nginx -ySystemctl status nginx |
Jika sudah di cek dan aktif kita cek di web browser kita |
- Jika sudah menginstall webservernya, selanjutnya kita pointing domain yang telah kita buat sebelumnya ke webservernya
vim /etc/nginx/sites-available/default |
Kita tambahkan name servernya, setelah itu konfigurasi juga di device kita |
Windows/system32/drivers/etc/hosts |
Jika sudah di setting di windows lalu kita coba cek di browser |
Nah pointing dari domain ke webserver sudah selesai, mari kita lanjut membuat ssl |
- Buat SSL pada webserver
- Pertama kita buat directory ssl terlebih dahulu setelah itu kita install open sslnya
mkdir /etc/nginx/ssl |
apt install openssl |
- Setelah itu kita konfigurasi opensslnya
cd ssl |
openssl genrsa -out ca.key 2048 |
openssl req -new -x509 -days 365 -key ca.key -subj “/C=ID/ST=TEGAL/L=JATENG/O=RAFLI/CN=RAFLI ROOT CA” -out ca.crt |
Perlu diperhatikkan, untuk C sesuaikan dengan negara, untuk ST sesuaikan dengan Kota, untuk L sesuaikan dengan provinsi, untuk O sesuaikan dengan organisasi Kalian, untuk CN sesuaikan dengan common name kalian. Setelah itu kita buat request dan key dan juga sertifikat server |
openssl req -newkey rsa:2048 -nodes -keyout server.key -subj “/C=ID/ST=TEGAL/L=JATENG/O=RAFLI, Inc./CN=bayhaqqyy.com” -out server.csr |
openssl x509 -req -extfile <(printf “subjectAltName=DNS:bayhaqqyy.com,DNS:games.bayhaqqyy.com,DNS:web.bayhaqqyy.com”) -days 365 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt |
Hasilnya akan seperti ini, selanjutnya mari kita konfigurasi untuk https |
- Setting untuk https
vim /etc/nginx/sites-available/default |
systemctl restart nginx |
Setelah itu kita cek di browser apakah sudah berhasil atau belum |
Nah, ssl kita telah berhasil terbuat. |
- Konfigurasi Web Basic Auth
Web basic auth ini digunakan untuk mengsandi web kita, jadi Ketika ada yang mengakses website kita akan disuruh memasukkan username dan sandi baru bisa mengakses website kita
sh -c “echo -n ‘bayhaqqy:’ >> /etc/nginx/.htpasswd”sh -c “openssl passwd >> /etc/nginx/.htpasswd” |
vim /etc/nginx/sites-available/default |
Tambahkan auth basic dan arahkan ke file .htpasswd, jika sudah cek konfigurasi |
nginx -tSystemctl restart nginx |
Nah konfigurasi web auth kita sudah berhasil |
- Konfigurasi UserDir
Userdir ini digunakan agar user bisa mendeploy website menggunakan home directori user, ikuti Langkah-langkah berikut untuk konfigurasi userdir
adduser rafli(nama user bebas)vim /etc/nginx/sites-available/default |
Buat location tersebut didalam server {} |
Systemctl restart nginxsu – rafli |
chmod 711 $HOMEmkdir public_htmlchmod 755 public_html |
Vim ~/public_html/index.html |
Jika sudah bisa cek di brwoser |
Nah, konfigurasi homedir kita telah berhasil, sekarang kita dapat mendeploy website dengan directory dari user |
- Deploy WordPress Menggunakan Vhost
WordPress merupakan sebuah CMS( Content Management Syetem) yang open-source, Dimana kitab isa membuat website tanpa harus membuat codingan terlebih dahulu, karena sudah ada fitur template dari wordpressnya jadi kita hanya perlu mengeditnya saja.
Nah lalu apa itu vhost? Jadi vhost(virtual host) tersebut sebuah metode Dimana kita dapat membuat banyak website dalam 1 webserver, karena setiap vhost mempunyai konfigurasi dan directory root sendiri-sendiri. Jadi ikuti Langkah-langkah dibawah untuk mendeploy wordpress menggunakan vhost.
- Install package dan dependencies yang diperlukan
apt install php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-soap php-intl php-zip php-fpm |
apt install nginx |
apt install mariadb-server-10.6 |
- Konfigurasi Vhost
cd /etc/nginx/sites-availablecp default wordpressvim wordpress |
Buat konfigurasi seperti diatasBagian listen gunakan port yang akan digunakanBagian root arahkan ke folder wordpressBagian nameserver gunakan domain masing masing ataupun dikosongkan |
nginx -tsystemctl restart nginx |
- Konfigurasi database
mysql -u root create database namadb;grant all privileges on namadb.* to userdb@’localhost’ identified by ‘passuser’;flush privileges;show databases; |
Nah, konfigurasi databasenya telah selesai, selanjutnya installasi wordpressnya |
- Installasi WordPress
wget https://wordpress.org/latest.tar.gz |
tar -xzvf latest.tar.gz |
mv wodpress /var/www/ |
chown -R www-data:www-data wordpresschmod -R 755 wordpress |
Bisa kita lihat untuk kepemilikan dan permissionnya telah berganti, selanjutnya kita setting database wordpressnya terlebih dahulu |
cd wordpressmv wp-config-sample.php wp-config.php |
Setting seperti yang telah kita buat sebelumnya didatabase, seperti nama database, nama user, password user. Jika sudah bisa langsung cek di web browser |
Dan ya, tahap installasi wordpress telah selesai, saatnya kita lanjut ke tahap konfigurasi wordpress agar wordpress bisa digunakan |
- Konfigurasi WordPress
Bagian username dan password bisa diisi bebas sesuai keinginanBagian email isi bebas saja hanya tidak terlalu diperlukan. Jika sudah kllik install wordpress dan klik login |
Bagian ini isi username dan password yang telah dibuat sebelumnya lalu klik login |
Dan ya, proses installasi dan konfigurasi wordpress telah selesai, sekarang wordpress siap untuk digunakan |
- Deploy FloopyBird Menggunakan UserDir
Nah, sebelumnya kita telah mendeploy wordpress menggunakan vhost, kali ini kita akan mendepoy floopybird menggunakan userdir, yaitu kita akan mengarahkan websitenya ke directory user. Ikuti Langkah-langkah di bawah
- Konfigurasi userdir
adduser raflivim /etc/nginx/sites-available/default |
Tambahkan locationArahkan ke home directory user dan folder yang akan dijadikan tempat mendeployGanti servername sesuai domain atau kosongkan saja |
- Install FloopyBird
Usermod -a -G sudo rafli(namauser)su – rafligit clone https://github.com/nebez/floppybirdsudo chown -R www-data:www-data floppybird/cd floppybirdsudo cp -r * ~/public_htmlcd ~/public_html |
Jika semua sudah ada di ~/public_html maka selanjutnya kita coba di browserhttp://games.bayhaqqyy.com/~rafli/ |
Nah, floppybird berhasil terinstall dengan baik menggunakan userdir |
- Membatasi Akses dengan Membuka Hanya Port 53,22,80,443,8080
Untuk meningkatkan keamanan server DNS, kita dapat membatasi akses hanya pada port 53 (digunakan untuk komunikasi DNS),port 22 (digunakan untuk akses SSH), 80 (dugunakan untuk akses http), port443 (digunakan untuk https), port 8080 (digunakan untuk custom http). Hal ini dapat dilakukan dengan ufw dan menambahkan aturan berikut:
sudo ufw enablesudo ufw allow 53/udp sudo ufw allow 22/tcp sudo ufw allow 80/tcpsudo ufw allow 8080/tcpsudo ufw allow 443/tcpsudo ufw status |
Nah, jika rules port yang kita buat sudah masuk list, maka port sudah berhasil kita setting |
- Kesimpulan
Webserver merupakan komponen yang penting dalam membangun sebuah website, dengan mengkonfigurasinya ditambah SSL maka website kita akan lebih secure dalam hal keamanan, lalu dengan kita mengkonfigurasi vhost, kita dapat membuat banyak website dalam 1 webserver saja. Artikel ini telah memberikan pemahaman mendalam tentang membuat sebuah website yang benar.
Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lengkapnya.
Penulis : Rafli Abdul Bay Haqqy