Buat Reverse Proxy antara 2 server di ubuntu

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


    Pada percobaan kali ini, saya menggunakan Ubuntu-22.04, silahkan anda install Nginx pada ke dua server anda
    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.


    Kesimpulan

    Dengan menggunakan Reverse Proxy maka.... Isi sendiri ya....

    0 Response to "Buat Reverse Proxy antara 2 server di ubuntu"

    Post a Comment

    Iklan Atas Artikel

    Iklan Tengah Artikel 1

    Iklan Tengah Artikel 2

    Iklan Bawah Artikel