Buat Reverse Proxy antara 2 server di ubuntu
Tuesday, March 14, 2023
Add Comment
Permasalahan
Pada permasalahan kali ini, saya ingin menghubungkan 2 server dimana Server 1 hanya mempunyai Private IP dan menggunakan Planetary Network, dimana ip tersebut tidak dapat di akses secara publik. dan server 2 mempunyai 1 IP Publik dengan low spec, dan nantinya IP Public ini akan saya forward ke subdomain idekubagus.com.
Solusi
Setelah saya googling bagaimana cara agar server dengan private ip Planetary Network bisa di akses secara publik, akhirnya saya menemukan cara dengan menginstall Nginx sebagai Reverse Proxy.Yang di butuhkan
- 2 server
- Domain
- Instalasi NginX
Instalasi NginX
Untuk instalasi Nginx bisa ketik.
Sudo apt update
Sudo apt install nginx
Setelah instalasi selesai, anda bisa konfigurasi firewall
ufw app list
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Selanjutnya ketik perintah ini di terminal
sudo ufw allow 'Nginx HTTP'
Anda bisa verifikasi firewall dengan perintah
sudo ufw status
Output:
Status: active
To Action From
-- ------ ----
Nginx Full ALLOW Anywhere
22/tcp ALLOW Anywhere
80/tcp ALLOW Anywhere
443 ALLOW Anywhere
81/tcp ALLOW Anywhere
Nginx Full (v6) ALLOW Anywhere (v6)
22/tcp (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443 (v6) ALLOW Anywhere (v6)
81/tcp (v6) ALLOW Anywhere (v6)
Langkah terakhir, cek apakah NginX sudah terinstall sempurna.
sudo systemctl status nginx
Output:
nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Tue 2023-03-14 02:51:39 UTC; 11min ago
Docs: man:nginx(8)
Process: 1119 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, stat>
Process: 1145 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCC>
Main PID: 1146 (nginx)
Tasks: 25 (limit: 28742)
Memory: 25.9M
CPU: 153ms
CGroup: /system.slice/nginx.service
├─1146 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
├─1147 "nginx: worker process"
├─1148 "nginx: worker process"
├─1149 "nginx: worker process"
├─1150 "nginx: worker process"
├─1151 "nginx: worker process"
├─1152 "nginx: worker process"
├─1153 "nginx: worker process"
├─1154 "nginx: worker process"
├─1155 "nginx: worker process"
lines 1-21
Apabila anda sudah berhasil instalasi nginx di ke 2 server. anda bisa akses di browser dengan mengetikan
http://yourIP
Maka akan muncul tulisan seperti di atas.untuk membedakan mana yang sedang kita akses, saya edit halaman Nginx pada Server1 Private IP yang terletak di
/var/www/html/index.nginx-debian.html
Reverse Proxy
Pada server2 yang memiliki Publik IP, kita tambahkan setingan reverse Proxy pada NginX. anda bisa lihat contoh dibawah ini.
sudo cat <<EOF > /etc/nginx/sites-enabled/nginx.idekubagus.com.conf
server {
server_name nginx.idekubagus.com;
listen 80;
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Max-Age 3600;
add_header Access-Control-Expose-Headers Content-Length;
proxy_set_header X-Real-IP \$remote_addr;
proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for;
proxy_set_header Host \$host;
proxy_pass http://[300:9c4a:29ac:6e0b:97c9:ae2:bf01:3d64];
}
}
EOF
Setelah setingan di atas sudah di buat, sekarang kita reload nginx, agar bisa terbaca setingan baru kita.nginx -s reload
Silahkan anda ubah nginx.idekubagus.com dengan subdomain yang akan kita pakai, dan ubah tulisan http://[300:9c4a:29ac:6e0b:97c9:ae2:bf01:3d64] dengan alamat IP server1 privateIP/planetary network IP kita.
Setelah setingan selesai, kita bisa seting DNS Record A Name, dengan memasukan alamat IP Publik server2 dan menambahkan subdomain.
0 Response to "Buat Reverse Proxy antara 2 server di ubuntu"
Post a Comment