Tutorial Reverse Proxy Dengan Nginx Ubuntu Server 18.04

tutorial reverse proxy nginx ubuntu goblogs akm.web.id

Tutorial Reverse Proxy Dengan Nginx Ubuntu Server 18.04 – Ada yang mengetahui apa itu reverse proxy? Atau masih asing dengan engine yang bernama Nginx? Tapi jangan bilang diantara kamu tidak tau apa itu Ubuntu!?
Saya juga baru mengenal istilah reverse proxy ini beberapa minggu yang lalu saat ada kebutuhan untuk setup reverse proxy untuk kebutuhan tertentu. Jadi pada kesempatan ini kita akan mempelajari sama-sama tutorial reverse proxy dengan menggunakan engine Nginx dan Ubuntu server 18.04. Kita akan coba mengetahui dari mulai perkenalan apa saja yang akan kita gunakan dalam pembahasan kali ini, cara setup, manfaat serta fungsi yang akan saya coba jelaskan point demi point. Tapi ingat ini sesuai pengalaman saya yaaa, jangan percaya dengan yang saya tulis 100%, karena saya juga masih belajar.

Perkenalan

Agar semuanya menjadi lebih jelas, pertama kita akan mulai mengenai perkenalan dari engine, OS dan metode yang akan kita gunakan agar semua running sebagai mana mestinya.

Apa Itu Nginx

Tutorial Reverse Proxy Dengan Nginx Ubuntu Server 18.04 goblogs akm.web.id
Sumber: nginx.com

Seperti biasa kita akan merujuk pada wikipedia agar lebih netral yaa. Jadi menurut Wikipedia, Nginx itu merupakan sebuah server HTTP dan proxy yang di buat dengan sumber kode terbuka (Open Source) yang tidak hanya dapat di gunakan untuk proxy web konten tapi juga dapat untuk proxy IMAP/POP3. Awal mulanya Nginx ini di ciptakan oleh Bapak Igor Sysoev dari tahun 2002 yang akhirnya di rilis untuk publik tahun 2004.

Kemudian jika kita melihat dari situs resminya, Nginx itu juga selain tetap mempertahankan kode sumber terbuka juga menyediakan beberapa produk dengan kelas enterprise bagi yang memang membutuhkan dengan beberapa fitur tambahan yang tidak ada pada versi Open Source. Dari semua fitur yang di sediakan oleh Nginx sebagai sebuah engine, ada beberapa yang menjadi ungulan dari engine satu ini, yaitu sebagai High Performance Load Balance, Web Server, dan Reverse Proxy. Pada kesempatan ini kita hanya akan fokus ke topik Reverse Proxy saja ya.

Apa Itu Reverse Proxy

Reverse Proxy menurut Wikipedia itu merupakan suatu jenis server proxy yang mengambil sumberdaya dengan mengatas namakan klien dari sebuah atau suatu server tententu. Sumber daya tersebut kemudian di kembalikan lagi ke klien, yang seolah-olah berasal dari proxy server yang kita punya.

Cara Kerja Reverse Proxy

Untuk pengertian satu ini saya juga cukup bingung memahaminya, tapi coba kita perhatikan gambar di bawah ini.

Sumber: imperva.com

Dari gambar di atas dapat di baca bahwa Reverse Proxy itu adalah sebuah server yang kita buat untuk memproteksi server utama kita, atau bisa di katakan bahwa server asli kita berada di belakang server reverse proxy.

Sebagai contoh saat web server kita ingin di akses oleh user dengan menggunakan jaringan publik, maka server reverse proxy akan menghandle permintaan itu terlebih dahulu barulah server reverse proxy yang akan request ke server utama. Server utama akan membalas request server reverse proxy, dan server reverse proxy akan mengembalikan sesuai permintaan kepada client.

Bahasa mudahnya itu user tidak akan interaksi langsung dengan server utama yang kita miliki, tapi hanya akan berinteraksi dengan reverse proxy yang seolah-olah menjadi server utama kita.

Jenis Reverse Proxy

Ini pendapat saya pribadi saja sepertinya. Jadi yang saya temukan itu bahwa si Server Reverse Proxy ini bisa di implementasikan menggunakan 2 cara.

Cara 1::
Reverse proxy bisa di impelmentasikan di satu server fisik yang sama dengan server utama kita, jadi nantinya si server reverse proxy ini akan mengakses ke localhost.

Cara 2::
Reverse proxy juga dapat di implementasikan di fisik server yang berbeda, jadi nanti si reverse proxy akan mengakses server utama kita secara public. Tapi menurut saya cara ini juga tetap aman, karena server utama kita hanya akan di akses melalui satu address saja.

Setup Reverse Proxy

Tahap selanjutnya kita akan sama-sama melakukan konfigurasi pada server reverse proxy. Dalam kasus ini kita anggap saja kita sudah mempunyai sebuah web server dengan lokasi yang berbeda. Jadi dalam tutorial kali ini saya akan menggunakan cara ke 2 yaitu mengimplementasikan reverse proxy di sebuah server fisik yang berbeda dengan server utama yang kita miliki.

Saya akan coba membuat 2 versi dalam tutorial kali ini, yaitu versi tertulis dan versi video. Semoga saja ini akan menjadi awal agar kedepannya saya selelu membuatkan 2 versi tutorial.

Install Ubuntu Server 18.04

Pertama tentu saja kita harus menyiapkan Operating System (OS) terlebih dahulu sebagai media kita untuk ngoprek. Tapi sepertinya saya tidak akan membahas cara install Ubuntu Server 18.04 pada artikel ini, kedepannya saya akan membuatkan artikel tersendiri, jadi tahap ini kita asumsikan bahwa kamu sudah mempunyai OS Ubuntu Server ya. Lanjut.

Cara Install Ubuntu Server 18.04

GoBlogs

Install dan Konfigurasi Nginx

Ini akan menjadi tahapan yang paling penting, jadi harus lebih teliti dalam memahami setiap langkahnya ya. Kita akan mulai dari jendela terminal. Silahkan buka terminal kamu dan kita akan memulai dengan melakukan update ke versi terbaru paket-paket yang ada di OS kita dengan perintah sudo apt update && sudo apt upgrade -y, tentu saja ini bertujuan agar setiap bugs dapat di atasi dengan di lakukan update ini.

Kemudian kita akan install nginx dengan perintah sudo apt install nginx -y. Ini akan menginstall paket nginx kedalam server kita.

Selanjutnya kita akan disable default virtual host dari nginx dengan perintah sudo unlink /etc/nginx/sites-enabled/default.

Setelah itu kita akan membuat file konfigurasi kita sendiri. Lakukan dengan perintah sudo touch /etc/nginx/sites-available/reverse-proxy.conf, kemudian setelah itu edit file yang kita buat dengan perintah sudo nano /etc/nginx/sites-available/reverse-proxy.conf.

Jangan kaget jika anda membuka file itu tidak ada tulisan apapun, karena memang kita belum menuliskan apapun disitu. Nah supaya tidak kosong, coba tuliskan beberapa baris code berikut:

server {
        listen 80;
        access_log /var/log/nginx/reverse-proxy-access.log;
        error_log /var/log/nginx/reverse-proxy-error.log;
        location / {
                    proxy_pass http://situstujuan.domain;
  }
}
tutorial reverse proxy goblogs akm.web.id

Selanjutnya anda boleh save dengan perintah ctrl+x lalu tekan y dan enter. Lalu perintah selanjutnya adalah ln -s /etc/nginx/sites-available/reverse-proxy.conf /etc/nginx/sites-enabled/reverse-proxy.conf yang berguna agar file tersebut saling nge-link satu sama lain.

tutorial reverse proxy goblogs akm.web.id

Ada juga opsi tambahan untuk mencoba konfigurasi yang sudah kita lakukan tadi apakah sudah benar atau belum. Coba jalankan perintah nginx -t untuk cek script yang telah kita buat tadi.

Coba juga untuk menjalankan perintah service nginx configtest. Jika menemukan status fail jangan panik dulu, kadang itu tidak berpengaruh apapun. Lalu coba untuk restart service nginx dengan perintah systemctl restart nginx. Untuk proses restart pastikan tidak muncul error, karena jika ada muncul error kemungkinan ada kesalahan dari penulisan skrip pada file reverse-proxy.conf.

Sampai tahap ini konfigurasi sudah selesai, selanjutnya kita akan masuk ke tahap uji coba.

Uji Coba Nginx Reverse Proxy

Pada tahap uji coba ini saya akan menguji dengan mengarahkan proxy_pass http://info.cern.ch/ , ini bukan situs yang saya punya, tapi kebetulan ini yang saya temukan setelah saya browsing, selain itu web tersebut juga sangat ringan.

Saya akan coba membuktikan bahwa saat saya mengakses alamat ip public server reverse proxy yang saya buat, saya tetap bisa mengakses situs dengan domain http://info.cern.ch/ tanpa merubah isi dari web tersebut. Perhatikan gambar berikut:

lihat ip dari server kita

tutorial reverse proxy goblogs akm.web.id

Silahkan menuju browser dan masukan alamat ip server kita

tutorial reverse proxy goblogs akm.web.id

Kita pun dapat mengakses tampilan website orang lain dengan menggunakan ip address server kita.

Jika ada yang bertanya kenapa saya menggunakan ip tidak menggunakan domain, karena saya tidak menempatkan domain apapun untuk server reverse proxy ini.

Kesimpulan

Dari serangkaian tahapan yang sudah kita lakukan di temukan bahwa terdapat beberapa kelebihan dan kekurangan yang saya rasakan, mungkin kamu mempunyai pendapat sendiri, silahkan berkomentar.
Berikut hal yang saya temukan:

Kelebihan Reverse Proxy

  • Menjadi pengaman untuk server utama kita yang ada di belakang server reverse proxy secara topologi.
  • Dapat memberikan alamat alternatif jika domain kita tidak dapat di kunjungi, atau mati karena alasan tertentu.
  • Konfigurasi mudah, hanya perlu install 1 package dan menjalankan beberapa perintah yang mudah di pahami.
  • Kemungkinan mengalami kesalahan sangat kecil, karena tidak terlalu banyak hal yang perlu di lakukukan konfigurasi atau penyesuaian.

Kekurangan Reverse Proxy

  • Jika di implementasikan pada server yang berbeda fisik akan menjadi percuma karena user yang mengakses dari jaringan public tidak akan melewati reverse proxy jika user tersebut sudah mengetahui domain server utama kita.

Mungkin itu saja yang dapat saya sampaikan mengenai Tutorial Reverse Proxy, kekurangan tentunya sangat banyak di temui dari tulisan saya ini. Semoga para pembaca berkenan untuk memperbaiki tulisan saya jika memungkinkan. Terimakasih.

Update!

Update on 24/08/2020. Mohon maaf sepertinya saya lupa menambahkan jika metode ini hanya berhasil melakukan reverse proxy untuk protokol http saja. Untuk protokol https, metode ini hanya akan bekerja seperti jika kamu melakukan redirect menggunakan htaccess.

Refrensi:
https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
https://www.scaleway.com/en/docs/how-to-configure-nginx-reverse-proxy/
https://id.wikipedia.org/wiki/Nginx
https://en.wikipedia.org/wiki/Reverse_proxy


Berita terbaru hari ini:

Author: Aris krisna
Working at PT. Graha Mitra Teguh with proud as Junior Network Administrator and Junior System Administrator. Learning Linux almost everyday just for fill in his empty brain.

2 thoughts on “Tutorial Reverse Proxy Dengan Nginx Ubuntu Server 18.04

  1. makasih tutorial nya mas Aris
    mas, saya ada sedikit pertanyaan

    kalau misalnya saya ingin memasang sebuah IP sebagai reverse proxy untuk situs WordPress

    ilustrasinya kira2 begini

    20.20.20.20 -> situs.com

    dengan cara yg mas jelaskan di atas, saya sudah bisa memasang reverse proxy dimana apabila saya membuka IP 20.20.20.20 isinya adalah situs.com. tetapi permalinknya tetap situs.com/isicontent bukan 20.20.20.20/isicontent

    barangkali mas tahu cara memperbaikinya

    Terima kasih

    1. Maaf slow respon.
      Coba di cek di bagian web servernya, kemungkinan yang harus di cek itu:
      1. Rewrite rule nya aktif tidak.
      2. Cek juga following symlink kalo gak salah namanya.
      3. Cek juga domain itu punya proxy server lain tidak, seperti cloudflare, dll.
      4. Situs kamu sudah https.

      Oh ya. Kebetulan ini hanya bisa di pakai untuk situs yang masih menggunakan http. Maaf bagian itu terlewat dari tulisan saya. Nanti saya update.

Leave a Reply

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