Kalo ngomongin tentang teknologi “Backend / Server Side Programming” memang gak akan ada abisnya, teknologi jaringan yang satu ini penting di ketahui bagi seorang programmer backend yaitu Reverse Proxy dan Load Balancing.
Untuk Reverse proxy dan Load balancing dapat di-implementasi-kan di web-server sabagai berikut:
- Nginx
- Apache Httpd
- Apache apache2
- Apache Tomcat
- Dan masih banyak lagi, hampir semua web server memiliki fitur reverse proxy.
Jadi misalnya saya punya aplikasi dengan mapping seperti berikut:
/auth
aplikasi untuk authentication ini running single instance pada hosttcp 192.168.2.100:8080
/registration
aplikasi untuk pendaftar ini running di beberapa host dan menggunakan load balancer karena di module ini yang paling banyak requesttcp 192.168.1.100:8080
tcp 192.168.1.101:8080
tcp 192.168.1.102:8080
tcp 192.168.1.103:8080
tcp 192.168.1.104:8080
/resource
aplikasi untuk resource management ini running di 2 host karena requestnya tidak telalu banyak seperti moduleregistration
dan menggunakan load balancer seperti berikut:tcp 192.168.3.100:8080
tcp 192.168.3.101:8080
Nah gambaran akhirnya seperti ini kurang lebih:
Jadi reverse proxy / load balancer nya sebagai firewall untuk interaksi aplikasi client atau istilah lainnya frontend dengan aplikasi backend-nya.
Ok sekarang kita setup dulu environtment-nya misalnya networkingnya seperti berikut:
Jadi setiap server harus membuka port 8080
supaya bisa di remote access oleh web-server yang akan melakukan reverse-proxy.
Check network is tcp bukan tcp6
netstat -na | grep "8080"
## output
# tcp 0 0 127.0.0.1:8080 0.0.0.0:* LISTEN
Menggunakan iptables
sudo iptables -I INPUT 1 -i eth0 -p tcp --dport 8080 -j ACCEPT
Menggunakan firewalld
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
sudo firewall-cmd --reload
Setelah di buka portnya sekarang kita install httpd
/ apache2
di server.
Install apache2
Web server apache2 adalah package untuk Debian, Ubuntu dan turunanya berikut adalah cara installnya:
sudo apt-get install apache2
dan berikut adalah configurasi reverse proxy, modif file /etc/apache2/sites-enabled/001-default.conf
tambahkan seperti berikut:
Nah sekarang tinggal restart aja web-server apache2 dengan perintah berikut:
## reload configuration without restart
/etc/init.d/apache2 reload
## if not working then restart apache2
/etc/init.d/apache2 restart
Install httpd
Web server httpd adalah bawaan package di Redhat, Fedora, Centos dan turunannya, berikut cara installnya:
# install on centos / rhel7
yum install httpd
# install on fedora
dnf install httpd
dan berikut adalah configurasi reverse proxy, modif file /etc/httpd/conf/httpd.conf
tambahkan di akhir baris dengan script seperti berikut:
Nah sekarang tinggal restart aja web-server httpd servicenya dengan perintah berikut:
sudo apachectl restart