Meetup #1
Melangkah Awal Dengan Localhost
Mengenal localhost
Apa sih localhost itu?
Dalam dunia komputer jaringan (networking), localhost artinya komputer ini (komputer yang sedang digunakan). Yaitu sebenernya nama host yang digunakan software komputer dan user untuk mengakses service jaringannya sendiri melalui jaringan loopback (127.0.0.1), melalui perangkat keras jaringan lokal.
Dalam meetup kali ini, pembahasannya akan dipersempit ke dalam web server di localhost. Artinya localhost disini sebagai webserver di localhost.
ilustrasi request localhost dengan request langsung melalui internet
Memberi nama lain Localhost
Sebenarnya kita dapat memberi nama lain localhost.
Windows:
C:\Windows\System32\drivers\etc\hosts
# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
misal pengen nama domain unik
127.0.0.1 namakubagus.com
Linux:
/etc/hosts
Port di localhost
Kita bisa memakai port berapapun, misalnya mulai dari 80 - 65535. Asalkan port tersebut tidak digunakan oleh service / aplikasi lain.
Pada umumnya protokol http memakai port 80. http://localhost:80 (atau kita bisa hilangkan :80, karena secara baku, http memakai port 80)
Dengan adanya banyak port, kita dapat mempunyai beberapa web server sekaligus dengan syarat pengaturan port harus berbeda-beda dan port belum digunakan oleh aplikasi lain.
Kegunaan localhost
Sebagai wadah untuk menampung service, di komputer bersangkutan.
Service paling umum misalnya:
-
Web Server (http server)
-
Database Server
-
Sebagai reverse proxy
-
dan lain-lain
Sedangkan localhost web server sendiri sangat berguna untuk kegiatan development (pengembangan) sebelum kita deploy di server sesungguhnya (production).
Web server di localhost
Mengenal Solution Server Stack
di windows dan linux
Apa itu solution stack?
Server stack / Solution Stack adalah kumpulan aplikasi yang membentuk insfrastruktur server secara lengkap. Sederhana nya, adalah aplikasi-aplikasi untuk kegiatan membuat server yang dijadikan dalam satu paket.
Singkatnya: membuat web server di localhost hanya dengan menginstall satu paket aplikasi / software
Misalnya sebuah server stack bisa terdiri dari:
- Web server (Apache, nginX, lighthttpd, Lite speed, dsb)
- Interpreter bahasa pemograman server (php, python, ruby, asp dsb)
- Database (mysql / mariaDb, postgresql, mongoDB, dsb)
- Aplikasi Admin (phpMyAdmin, rockmongo)
- Shortcut untuk konfigurasi
-
dan lain sebagainya bervariasi.
Solution Stack di Windows
Beberapa server stack di windows
-
IIS (WISA)
-
XAMP
-
WAMPServer
-
WPN-XM
-
Dan lain-lain, tidak akan dibahas semua
Solution Stack di Windows
# IIS (WISA)
Terdiri dari Windows Server, IIS, Microsoft SQL Server, ASP.NET dsb.
Lebih populer di kalangan perusahaan (enterprise), dan biaya membangun server ini relatif lebih mahal di kegiatan production.
*kedepannya server stack ini tidak akan dibahas, karena komunitas SBS lebih mementingkan menggunakan aplikasi open source, dan bukan skala enterprise
Solution Stack di Windows
# XAMPP
X ( dapat dibaca cross, artinya dapat diinstall di berbagai sistem operasi [linux, windows, macOS])
A (Apache sebagai web server)
M(MySQL sebagai database)
P (PHP)
P (PERL)
Addon (aplikasi web tambahan) :
phpMyAdmin (Untuk manajemen database)
Solution Stack di Windows
# WAMPServer
Windows
Apache
MySQL
PHP
Addon (aplikasi web tambahan) :
-
phpMyAdmin (Untuk manajemen database)
-
SQLBuddy (Untuk manajemen database)
-
XDebug (Untuk mendebug / mengetahui secara detail script kita)
Solution Stack di Windows
# wpn-xm
-
W - Windows (operating system)
-
P - PHP (scripting & programming language)
-
N - NGINX (web server)
-
X - XDebug (debugger) + XHprof (profiler)
-
M - MariaDB (database)
Addon (aplikasi web tambahan) :
Banyak, bisa dicek sendiri di web resminya
Solution Stack di Linux
Beberapa server stack di Linux
-
LAMP (Linux Apache MySQL PHP) (paling dipakai dan terkenal )
-
LEAP (Linux [Sistem Operasi], Yaws (web server) ditulis dalam bahasaErlang, Mnesia or CouchDB (database) written in Erlang, Erlang)
-
GLASS
-
LEAP
-
Open Stack dsb
Mengenal Apache & NginX
kelebihan dan kekurangan apache dan nginx
Penggunaan Web Server berdasarkan Web Server Survey
Kelebihan dan kekurangan Apache
Kelebihan:
-
Komunitas banyak
-
Banyak hosting yang support
.httaccess
-
Mudah melakukan konfigurasi
-
Banyak module / addon tambahan
-
Memakan CPU dan memory banyak karena membuat proses per request
Kelebihan dan Kekurangan Nginx
Kelebihan:
-
Lebih cepat dari apache
-
Tidak memecah proses ketika ada permintaan koneksi
Kekurangan:
-
Komunitas sedikit
-
Dokumentasi (hal untuk dipelajari) sedikit
-
Tidak mendukung .htaccess (tetapi punya rule sendiri)
Performa Memory Apache vs Nginx
Localhost Tunneling
cara membuat online localhost kita
Membuat online localhost
localhost bersifat local, artinya komputer sendiri dan jaringan local yang terhubung dengan komputer tersebut yang bisa mengakses.
Untuk membuat localhost kita online, kita harus melakukan localhost tunneling
Untuk apa tunneling?
-
Beberapa diantaranya adalah sebagai sarana untuk orang yang berada di tempat yang jauh (tidak terikat jaringan kita) yang ingin melihat website localhost kita.
-
Untuk membuat keperluan membuat applikasi facebook, tanpa menyewa hosting
-
Simulasi sebelum benar-benar deploy ke server (status produksi).
- Testing website localhost kita.
Beberapa cara tunneling
-
Membuka NAT di modem (intinya membuat modem kita bisa diakses di publik)
-
PageKite
-
Ngrok
- Dan lain-lain
Tunneling dengan Ngrok
-
Daftar ngrok.com
-
Ambil kode auth nya
-
Download ngrok
-
Jalankan melalui commandline
*untuk lebih jelas bisa melihat screencast