Membangun Sebuah Web Server Menggunakan Raspberry Pi

Halo semuanya, setelah sekian lama saya tidak pernah mem-publish artikel apapun di Bukan Coder, kali ini saya akan membagikan tutorial tentang Membangun Sebuah Web Server Menggunakan Raspberry Pi. Ini mengikuti permintaan teman-teman sekalian yang meminta segera di post kesini, jadinya kemudian saya percepat.



Alat dan perlengkapan :

  • Raspberry Pi 3 (Disini saya menggunakan Raspberry Pi 3 Model B yang sudah terinstall Rasbian)
  • Public IP (Menggunakan public IP dari indihome)
  • Sebuah domain atau subdomain (Untuk artikel ini saya akan menggunakan subdomain dari bukancoder.co)
  • Koneksi internet (Disini saya menggunakan indihome 40 Mbps/s
  • Nginx
  • PHP 7
  • MySQL
  • SSL by Lets Encrypt

Penampakan untuk Raspberry yang akan kita gunakan untuk tutorial ini :

Pengaturan Port Forwarding

Karena disini kita menggunakan Raspberry sebagai server, maka kita membutuhkan sebuah public IP dan juga port yang dibutuhkan sudah dalam keadaan sudah dibuka. Pertama kita cari tahu dulu primary IP dan Public IP Raspberry yang sudah terkoneksi ke internet




Akan muncul output seperti ini :


Lalu kemudian kita login ke modem admin panel untuk konfigurasi port forwarding. Berikut port yang akan kita gunakan :

  • Port 22 (Untuk SSH)
  • Port 80 (Untuk HTTP)
  • Port 443 (Untuk SSL/HTTPS)

Untuk pengguna indihome silahkan login melalui http://192.168.1.1/ setelah login langsung ke Application -> Port Forwarding



Pengaturannya kira-kira akan seperti itu untuk membuka port 22. Setelah itu dilanjutkan untuk membuka port 80 dan juga 443. Maka hasil akhirnya akan seperti ini :

Remote SSH Raspberry

Dari terminal raspberry. Ketikkan command sudo raspi-config untuk konfigurasi password Raspberry


Setelah itu tekan enter.



Tekan enter lagi. Lalu setup password yang akan digunakan.

Setelah itu silahkan langsung dicoba untuk koneksi melalui SSH dari local ataupun outside local network.

Silahkan replace @publicIP dengan IP public sesuai dengan punya kita masing-masing dan login menggunakan password yang sudah kita set tadi. Jika berhasil maka tampilannya akan seperti ini



Mengarahkan domain ke Raspberry

Selanjutnya yang perlu kita lakukan adalah mengarahkan domain atau subdomain yang akan kita gunakan ke public IP yang telah kita dapatkan tadi. Buatlah A record yang kemudian diarahkan ke public IP kita tadi

Install  Nginx

Disini kita akan menggunakan Nginx sebagai web server. Berikut untuk step by step konfigurasi Nginx

Setelah berhasil kemudian jalankan Nginx



Install PHP

Install MySQL

Konfigurasi Virtual Host Nginx

Sebelumnya domain sudah kita arahkan ke public ip Raspberry kita tadi. Maka yang perlu kita lakukan selanjutnya adalah membuat virtual host Nginx untuk domain kita tadi. Untuk tutorial ini kita akan menggunakan subdomain raspi.bukancoder.co

Kemudian replace dengan file conf berikut ini :



Silahkan diganti untuk setiap line yang ada raspi.bukancoder.co dengan domain kita masing-masing. Setelah itu buat symbolic link antara sites-available dan sites-enabled

Install dan Konfigurasi Let’s Encrypt

Agar website kita ketika diakses otomatis menggunakan SSL atau HTTPS, kita bisa menggunakan SSL gratis dari Let’s Encrypt

Jika proses issue SSL telah berhasil, maka akan muncul output seperti ini :

Lalu jalankan kembali Nginx



Kemudian berpindah ke dir /var/www/html dan buatlah file index.php

Dan gunakan script berikut ini :

Sekarang silahkan coba akses subdomain atau domain yang kita gunakan tadi



Taraaaaaaaaaa website kita berhasil diakses tanpa gangguan dan otomatis sudah menggunakan HTTPS/SSL.

Sedikit penjelasan jadi disini kita menggunakan Raspberry sebagai server untuk menampung seluruh proses dan juga file kita. Jika Raspberry masih dalam keadaan hidup dan seluruh proses Nginx dan PHP masih berjalan normal, maka website kita masih terus dapat diakses. Tapi jika Raspberry dalam keadaan mati, makan website kita tersebut tidak akan bisa diakes.

Sekian dari saya dan semoga tutorial Membangun Sebuah Web Server Menggunakan Raspberry Pi bermanfaat.

Salam,
Teguh Aprianto

3 comments
Leave a Reply

Your email address will not be published. Required fields are marked *

Daftar Newsletters

Dapatkan update terbaru dari Bukan Coder

You May Also Like

Instalasi & Konfigurasi Let's Encrypt SSL Menggunakan Nginx di CentOS 6

Berdasarkan informasi dari Wikipedia, Let’s Encrypt adalah¬†certificate authority yang diluncurkan pada tanggal…

Installasi dan Konfigurasi Nginx, PHP FPM 5.4 dan MySQL 5.5 di CentOS 6

Nginx adalah salah satu dari sekian banyak webserver yang tersedia yang dapat…

Monitor MySQL Server Menggunakan Twilio untuk Real Time Status Update via SMS

Belakangan saya sedang sibuk mencoba layanan dari Twilio. Di artikel sebelumnya saya…

Membuat Server CDN Sendiri Menggunakan Nginx

Content Delivery Network atau yang biasanya disingkat dengan CDN, bisa dikatakan sebuah…