SlideShare a Scribd company logo
Configuring Nginx as Reverse Proxy and Load Balancing Web
                               Application


1. Apa sih Proxy Server

Pada jaringan komputer, proxy server adalah sebuah server (sebuah sistem komputer atau sebuah
aplikasi) yang bertugas sebagai penengah dari request yang datang dari client mencari data ke server
lain. Ketika sebuah client terhubung ke sebuah proxy server, meminta layanan-layanan, seperti file,
koneksi, halaman web atau data lain yang boleh diakses dan berasal dari sebuah server lain, proxy server
akan mengevaluasi permintaan tersebut sebagai dengan cara mempermudah pengaksesan dan
mengontrol kompleksitas permintaan tersebut. Saat ini kebanyakan proxy adalah web proxy, sebagai
sebuah alat yang memfasilitasi pengaksesan content-content dari World Wide Web.

2. Jenis-Jenis Proxy

Ada 3 macam jenis proxy yang dibedakan berdasarkan tata letaknya.

   •   Forward Proxy
       Forward Proxy adalah proxy yang bertugas meneruskan permintaan konektivitas client ke server-
       server yang di kehendaki oleh client, forward proxy memiliki kemampuan untuk mengakses
       content-content kemana saja (dalam hal ini semua server pada internet)




                                                                             [4]



   •   Open Proxy
       Open proxy adalah sebuah forwarding proxy yang bisa diakses oleh siapapun di dalam jaringan
       internet. Open proxy biasanya digunakan user untuk menyembunyikan IP address pengguna
       ketika sedang melakukan browsing internet (hacker style/safe browsing).
•   Reverse Proxy
       Reverse proxy atau Surrogate adalah sebuah proxy server yang muncul ke client sebagai sebuah
       server yang tidak biasa, request dari client akan diteruskan ke satu atau lebih server yang
       nantinya akan memproses request tersebut, response dari sebuah reverse proxy seakan-akan
       seperti datang dari server sebenarnya yang menangani request tersebut.




       Reverse proxy di pasang di dalam jaringan web server atau didalam web server itu sendiri, semua
       trafik yang datang dari internet yang tertuju kepada satu atau lebih web server dalam jaringan
       internal web server tersebut harus melewati proxy server terlebih dahulu. Kata reverse dalam
       reverse proxy merupakan kebalikan makna dari forward proxy, sebab reverse proxy terletak
       lebih dekat kepada web server dan hanya melayani content-content terbatas yang ada web
       server tersebut.

       Ada beberapa alasan orang meng-install reverse proxy diantaranya: Encryption, Load Balancing,
       Serve/Cache Static Content, Kompresi, Spoon Feeding, Security dan lain-lain.

       Sumber: http://en.wikipedia.org/wiki/Proxy_server

3. Reverse Proxy terbuat dari?

Reverse proxy dapat dibuat dengan memanfaatkan aplikasi server seperti, Apache, atau Nginx. Dengan
menambahkan modul-modul tertentu dan meng-oprek konfigurasi, Apache dapat dimanfaatkan
menjadi sebuah reverse proxy. Sementara untuk Nginx, Nginx sendiri datang dengan kemampuan
default sebagai sebuah reverse proxy dan load balancing server, sehingga tidak perlu menambahkan
modul-modul dalam untuk membuat nginx menjadi sebuah reverse proxy, hanya perlu sedikit
melakukan konfigurasi, maka nginx siap dijadikan sebagai sebuah reverse proxy dan load balancing
server. Lebih jauh mengenai Apache sebagai web proxy bisa dibaca di :
http://blog.josescalia.net/2012/02/menjadikan-apache-sebagai-proxy-web.html
4. Diagram Arsitektur Reverse proxy dan Load Balancing Server



                                    HTTP Request




                                        Reverse
                                      Proxy/Load
                                       Balancing

                                              Configured Proxy or Load Balancing




                            Application          Application
                             Server 01            Server 02


Secara flow diagram alur HTTP request yang di-intercept oleh proxy seperti gambar di atas, setiap
request yang datang dari client akan di terima oleh reverse proxy server, dan kemudian proxy server akan
meneruskan ke application server agar request tersebut di proses oleh application server, dan nantinya
hasil dari proses tersebut akan dikembalikan ke client melewati route yang sama.

Dalam penerapannya, application server ini bisa lebih banyak dari gambar diatas, tergantung dari
pertimbangan banyaknya request yang masuk ke application tersebut, semakin banyak node application
server yang ada, secara relatif request juga seharusnya bisa diproses bisa lebih cepat karena tidak harus
mengantri atau menunggu request sebelumnya selesai diproses. Tapi pertimbangan hardware juga
menjadi faktor banyaknya node application server yang hendak dibuat, sebab setiap node application
server terhitung sebagai sebuah instance aplikasi yang tentunya menggunakan memory yang ada pada
CPU.

5. How To Use Nginx as Reverse Proxy and Load Balancing Server

Seperti yang sudah dipaparkan di atas, bahwa Nginx datang dengan kemampuan default sebagai reverse
proxy dan cukup sedikit memodifikasi file konfigurasi nginx, maka nginx siap dijadikan sebagai reverse
proxy.

Mari kita mencoba membuat sebuah skenario arsitektur sebuah reverse proxy, dimana dalam skenario
tersebut kita inginkan agar setiap kali penambahan node application server, kita tidak mengubah
setting-an pada file utama konfigurasi nginx, tetapi kita menambahkan file konfigurasi baru saja.
Berikut ini langkah-langkahnya, dengan asumsi nginx sudah ter-install dalam operating system:

   1. Buka file nginx.conf yang terletak pada folder instalasi nginx, dalam OS fedora 14 file ini terletak
      pada direktori /etc/nginx/. Perhatikan baris-baris pada file tersebut yang isinya seperti dibawah
      ini:
         user nginx;
         worker_processes   1;

         error_log   /var/log/nginx/error.log warn;
         pid         /var/run/nginx.pid;

         events {
             worker_connections     1024;
         }


         http {
             include        /etc/nginx/mime.types;
             default_type   application/octet-stream;

             log_format    main   '$remote_addr - $remote_user [$time_local] "$request" '
                                  '$status $body_bytes_sent "$http_referer" '
                                  '"$http_user_agent" "$http_x_forwarded_for"';

             access_log    /var/log/nginx/access.log   main;

             sendfile         on;
             #tcp_nopush      on;

             keepalive_timeout     65;

             #gzip   on;

             include /etc/nginx/conf.d/*.conf;
         }


      Pada baris kode yang ditebalkan dapat diartikan seperti ini, nginx akan membaca seluruh file
      dengan ekstensi .conf yang ada pada folder /etc/nginx/conf.d/, nah disinilah nantinya kita akan
      memodifikasi setting-an nginx.
   2. Rename file default.conf menjadi default.conf.bak yang ada pada folder /etc/nginx/conf/.
      Dengan cara ini maka konfigurasi default nginx tidak akan lagi terbaca pada saat service nginx di
      start.
   3. Pada folder yang sama letaknya dengan default.conf tersebut, buatah sebuah file dengan nama
      real_nginx.conf, penamaan ini tidak harus sama, hanya saja ekstensi file tersebut dan folder
      tempat meletakkan file tersebut mengikuti setting-an yang ada pada nginx.conf pada langkah 1.
      Adapun contoh isi dari file real_nginx.conf tersebut adalah sebagai berikut:

         #OVERRIDE NGINX CONFIGURATION
         #---------------------------------------------------------
         server {
            listen 80;
            server_name localhost;
            access_log /var/log/nginx/nginx_balancer.log;

             #include all web application configuration
             include /etc/nginx/conf.d/cluster/*.conf;
         }
         #---------------------------------------------------------
Pada file ini yang dapat kita pahami adalah sebagai berikut, nginx akan listen pada port 80,
   dengan nama server-nya adalah localhost, dan dimana semua akses yang masuk ke dalam port
   80 dalam service nginx tersebut akan dicatat dalam file /var/log/nginx/nginx_balancer.log.
   Kemudian nginx akan membaca lagi semua konfigurasi yang terletak pada folder
   /etc/nginx/conf.d/cluster/. Nah disinilah point utama dari skenario yang kita buat diatas, yaitu
   setiap kita ingin menambahkan node application server kita hanya menambah file konfigurasi
   pada folder ini saja, tanpa harus mengubah setting-an file utama konfigurasi yaitu file
   real_nginx.conf.
4. Langkah berikutnya sebetulnya adalah langkah yang bisa dilakukan berulang-ulang sesuai
   dengan keinginan kita menambahkan node application server. Buat sebuah file konfigurasi yang
   merepresentasikan sebuah reverse proxy seperti contoh berikut ini:
      ###################### DOCUMENTATION #############################
      # Each folder on web application must register here as a proxy_pass
      # and the proxy pass must pointing to name of upstream which is
      # configured on the /etc/nginx/conf.d/nginx_balancer.conf
      #-----------------------------------------------------------------
      location /jasperserver {
         proxy_pass http://127.0.0.1:3030/jasperserver;
      }
      ############################END SCRIPT#############################


   Contoh konfigurasi diatas adalah sebuah konfigurasi yang membuat supaya aplikasi jasperserver
   yang tadinya berjalan pada port 3030 bisa diakses pada port 80 dengan URL
   http://somehost/jasperserver. Inilah yang disebut dengan reverse proxy, dimana sebetulnya
   client hanya tahu me-request http://somehost/jasperserver, padahal di dalamnya reverse proxy
   akan meneruskan request tersebut ke http://127.0.0.1:3030/jasperserver.
5. Jika langkah diatas adalah membuat sebuah konfigurasi reverse proxy maka source code
   dibawah ini adalah konfigurasi Load Balancing.
     ###################### DOCUMENTATION #############################
     # Each folder on web application must register here as a proxy_pass
     # and the proxy pass must pointing to name of upstream which is
     # configured on the /etc/nginx/conf.d/nginx_balancer.conf
     #-----------------------------------------------------------------
     location /tomcat_admin {
        proxy_pass http://tc_balancer;
     }

     location /manager{
        proxy_pass http://tc_balancer;
     }

     location /docs{
        proxy_pass http://tc_balancer;
     }

     location /examples{
        proxy_pass http://tc_balancer;
     }

     location /host-manager{
        proxy_pass http://tc_balancer;
     }

     ############################END SCRIPT#############################
Pada source diatas terlihat ada URL yang tidak biasa, yaitu http://tc_balancer, URL ini adalah
        URL Load Balancing yang harus kita setting pada file konfigurasi utama nginx, agar URL ini bisa
        terbaca oleh nginx maka konfigurasi utama harus kita tambahkan seperti contoh dibawah ini:
         #########################################################
         #BALANCER FOR TOMCAT RUNNING ON PORT 18080 and 28080 etc
         upstream tc_balancer {
             ip_hash;
             server 127.0.0.1:18080;
             server 127.0.0.1:28080;
             server 127.0.0.1:38080;
             server 127.0.0.1:48080;
             server 127.0.0.1:58080;
         }
         #---------------------------------------------------------

         #OVERRIDE NGINX CONFIGURATION
         #---------------------------------------------------------
         server {
            listen 80;
            server_name localhost;
            access_log /var/log/nginx/nginx_balancer.log;

             #include all web application configuration
             include /etc/nginx/conf.d/cluster/*.conf;
         }
         #---------------------------------------------------------




        Dengan tambahan yang digaris tebal diatas, maka url tc_balancer akan bisa dibaca oleh nginx
        sebagai sebuah URL yang valid, dalam code tersebut terlihat bahwa upstream tc_balancer akan
        mengarah ke server-server yang terdaftar dalam blok kurawal.

Demikianlah pemanfaatan Nginx sebagai sebuah Reverse Proxy dan Load Balancing Web Application.
Contoh diatas adalah sebuah contoh sederhana pemanfaatan Nginx yang bisa dikembangkan lebih
kompleks lagi.




Semoga Bermanfaat

Salam


Josescalia
Created For HITZ (Hack In The Zoo) 2013-#1 Kebun Raya Bogor (16 Februari 2013)

More Related Content

PDF
konfigurasi web server
PDF
konfigurasi web server, dns server , dhcp server, ftp server , mail server da...
PDF
Konfigurasi web server
PDF
Konfigurasi FTP Server Debian OS
PDF
Squid apache
PDF
Laporan resmi proxy radius
PDF
Instalasi dan Konfigurasi DHCP Server pada Linux
DOC
Kamdat proxy radius
konfigurasi web server
konfigurasi web server, dns server , dhcp server, ftp server , mail server da...
Konfigurasi web server
Konfigurasi FTP Server Debian OS
Squid apache
Laporan resmi proxy radius
Instalasi dan Konfigurasi DHCP Server pada Linux
Kamdat proxy radius

What's hot (20)

DOCX
Soal Ujian Semester Kelas XII Tahun 2019/2020
PDF
Instalasi Debian Server
DOCX
Materi Proxy Server Lengkap
PPTX
Konfigurasi debian 5
PPTX
Pertemuan 8 mail server
PDF
Network commands
PPTX
Membangun Web Server Menggunakan Linux Ubuntu
PDF
Konfigurasi server debian
PPTX
Penjelasan Materi Web Server
DOCX
Debian 4
DOCX
Lapres https
PPT
application layer
PPTX
Materi aplikasi server - 11 TKJ-K 2013
PDF
Bab 7 gnu linu x server
DOCX
Instalasi dan konfigurasi debian wheezy 7
DOC
Konfigurasi DHCP
PPTX
Web Server, DNS Server, dan FTP Server
PPTX
Tugas individu 2 nasrul akbar 1412510552
PDF
Artikelserver
PDF
Konfigurasi server open suse
Soal Ujian Semester Kelas XII Tahun 2019/2020
Instalasi Debian Server
Materi Proxy Server Lengkap
Konfigurasi debian 5
Pertemuan 8 mail server
Network commands
Membangun Web Server Menggunakan Linux Ubuntu
Konfigurasi server debian
Penjelasan Materi Web Server
Debian 4
Lapres https
application layer
Materi aplikasi server - 11 TKJ-K 2013
Bab 7 gnu linu x server
Instalasi dan konfigurasi debian wheezy 7
Konfigurasi DHCP
Web Server, DNS Server, dan FTP Server
Tugas individu 2 nasrul akbar 1412510552
Artikelserver
Konfigurasi server open suse
Ad

Similar to Configuring Nginx as Reverse Proxy and Load Balancing Web Application (20)

PPT
Proxy server
PPTX
Slide-IST104-IST104-Slide-10-11.pptx
PPTX
Tugas 2 0317 individu
PPT
Proxy server
PPT
PDF
Multiple webserver in single ip with Haproxy & Mikrotik
PPTX
Mengevaluasi Proxy Serverrrrrrrrrrrrrrrr
PPT
Tugas presentasi fix
PPTX
cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5
PPTX
Tugas rekweb 2 individu
PPTX
Tugas 2 0317-nurul azmi-1412510587
PPTX
Squid proxy-server
PDF
Optimasi Web Server dengan Nginx by Aswin
PPTX
Proxy Server
PPTX
Tugas 2 0317 (Individu)
PPTX
Presentasi (2).pptx
PPTX
Perkembangan web server
PPTX
Konfigurasi proxy server
PPTX
Tugas2 0317 [lingga eka pradipta]-[1411501073]
PPT
belajar16-proxy-debian-debian-debian.ppt
Proxy server
Slide-IST104-IST104-Slide-10-11.pptx
Tugas 2 0317 individu
Proxy server
Multiple webserver in single ip with Haproxy & Mikrotik
Mengevaluasi Proxy Serverrrrrrrrrrrrrrrr
Tugas presentasi fix
cara install nginx dengan php5 dan dukungan Mysql Di CentOS 6.5
Tugas rekweb 2 individu
Tugas 2 0317-nurul azmi-1412510587
Squid proxy-server
Optimasi Web Server dengan Nginx by Aswin
Proxy Server
Tugas 2 0317 (Individu)
Presentasi (2).pptx
Perkembangan web server
Konfigurasi proxy server
Tugas2 0317 [lingga eka pradipta]-[1411501073]
belajar16-proxy-debian-debian-debian.ppt
Ad

Recently uploaded (8)

PPTX
PERANCANGAN DAN PENGEMBANGAN VIDEO GAME SEBAGAI MEDIA TERAPI DEPRESI
DOCX
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
PPTX
Implementasi Microservices pada Manufaktur
PPTX
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
PPT
pengantar-sistem-informasi manajemen.ppt
PPTX
PEMAHAMAN MAPEL KODING DAN KECERDASAN ARTIFICIAL
PPTX
Materi_Array_Karakter_String untuk kelas XI sma.pptx
DOCX
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...
PERANCANGAN DAN PENGEMBANGAN VIDEO GAME SEBAGAI MEDIA TERAPI DEPRESI
Keutuhan Aplikasi Konsep dan Praktik dalam Upaya menciptakan aplikasi Anti Vi...
Implementasi Microservices pada Manufaktur
Peranan AI dalam Dunia Pendidikan dan Industri Aplikasinya
pengantar-sistem-informasi manajemen.ppt
PEMAHAMAN MAPEL KODING DAN KECERDASAN ARTIFICIAL
Materi_Array_Karakter_String untuk kelas XI sma.pptx
Antivirus Versi.FULL.JALiN.KB.PRO Keutuhan Aplikasi Konsep dan Praktik dalam ...

Configuring Nginx as Reverse Proxy and Load Balancing Web Application

  • 1. Configuring Nginx as Reverse Proxy and Load Balancing Web Application 1. Apa sih Proxy Server Pada jaringan komputer, proxy server adalah sebuah server (sebuah sistem komputer atau sebuah aplikasi) yang bertugas sebagai penengah dari request yang datang dari client mencari data ke server lain. Ketika sebuah client terhubung ke sebuah proxy server, meminta layanan-layanan, seperti file, koneksi, halaman web atau data lain yang boleh diakses dan berasal dari sebuah server lain, proxy server akan mengevaluasi permintaan tersebut sebagai dengan cara mempermudah pengaksesan dan mengontrol kompleksitas permintaan tersebut. Saat ini kebanyakan proxy adalah web proxy, sebagai sebuah alat yang memfasilitasi pengaksesan content-content dari World Wide Web. 2. Jenis-Jenis Proxy Ada 3 macam jenis proxy yang dibedakan berdasarkan tata letaknya. • Forward Proxy Forward Proxy adalah proxy yang bertugas meneruskan permintaan konektivitas client ke server- server yang di kehendaki oleh client, forward proxy memiliki kemampuan untuk mengakses content-content kemana saja (dalam hal ini semua server pada internet) [4] • Open Proxy Open proxy adalah sebuah forwarding proxy yang bisa diakses oleh siapapun di dalam jaringan internet. Open proxy biasanya digunakan user untuk menyembunyikan IP address pengguna ketika sedang melakukan browsing internet (hacker style/safe browsing).
  • 2. Reverse Proxy Reverse proxy atau Surrogate adalah sebuah proxy server yang muncul ke client sebagai sebuah server yang tidak biasa, request dari client akan diteruskan ke satu atau lebih server yang nantinya akan memproses request tersebut, response dari sebuah reverse proxy seakan-akan seperti datang dari server sebenarnya yang menangani request tersebut. Reverse proxy di pasang di dalam jaringan web server atau didalam web server itu sendiri, semua trafik yang datang dari internet yang tertuju kepada satu atau lebih web server dalam jaringan internal web server tersebut harus melewati proxy server terlebih dahulu. Kata reverse dalam reverse proxy merupakan kebalikan makna dari forward proxy, sebab reverse proxy terletak lebih dekat kepada web server dan hanya melayani content-content terbatas yang ada web server tersebut. Ada beberapa alasan orang meng-install reverse proxy diantaranya: Encryption, Load Balancing, Serve/Cache Static Content, Kompresi, Spoon Feeding, Security dan lain-lain. Sumber: http://en.wikipedia.org/wiki/Proxy_server 3. Reverse Proxy terbuat dari? Reverse proxy dapat dibuat dengan memanfaatkan aplikasi server seperti, Apache, atau Nginx. Dengan menambahkan modul-modul tertentu dan meng-oprek konfigurasi, Apache dapat dimanfaatkan menjadi sebuah reverse proxy. Sementara untuk Nginx, Nginx sendiri datang dengan kemampuan default sebagai sebuah reverse proxy dan load balancing server, sehingga tidak perlu menambahkan modul-modul dalam untuk membuat nginx menjadi sebuah reverse proxy, hanya perlu sedikit melakukan konfigurasi, maka nginx siap dijadikan sebagai sebuah reverse proxy dan load balancing server. Lebih jauh mengenai Apache sebagai web proxy bisa dibaca di : http://blog.josescalia.net/2012/02/menjadikan-apache-sebagai-proxy-web.html
  • 3. 4. Diagram Arsitektur Reverse proxy dan Load Balancing Server HTTP Request Reverse Proxy/Load Balancing Configured Proxy or Load Balancing Application Application Server 01 Server 02 Secara flow diagram alur HTTP request yang di-intercept oleh proxy seperti gambar di atas, setiap request yang datang dari client akan di terima oleh reverse proxy server, dan kemudian proxy server akan meneruskan ke application server agar request tersebut di proses oleh application server, dan nantinya hasil dari proses tersebut akan dikembalikan ke client melewati route yang sama. Dalam penerapannya, application server ini bisa lebih banyak dari gambar diatas, tergantung dari pertimbangan banyaknya request yang masuk ke application tersebut, semakin banyak node application server yang ada, secara relatif request juga seharusnya bisa diproses bisa lebih cepat karena tidak harus mengantri atau menunggu request sebelumnya selesai diproses. Tapi pertimbangan hardware juga menjadi faktor banyaknya node application server yang hendak dibuat, sebab setiap node application server terhitung sebagai sebuah instance aplikasi yang tentunya menggunakan memory yang ada pada CPU. 5. How To Use Nginx as Reverse Proxy and Load Balancing Server Seperti yang sudah dipaparkan di atas, bahwa Nginx datang dengan kemampuan default sebagai reverse proxy dan cukup sedikit memodifikasi file konfigurasi nginx, maka nginx siap dijadikan sebagai reverse proxy. Mari kita mencoba membuat sebuah skenario arsitektur sebuah reverse proxy, dimana dalam skenario tersebut kita inginkan agar setiap kali penambahan node application server, kita tidak mengubah setting-an pada file utama konfigurasi nginx, tetapi kita menambahkan file konfigurasi baru saja.
  • 4. Berikut ini langkah-langkahnya, dengan asumsi nginx sudah ter-install dalam operating system: 1. Buka file nginx.conf yang terletak pada folder instalasi nginx, dalam OS fedora 14 file ini terletak pada direktori /etc/nginx/. Perhatikan baris-baris pada file tersebut yang isinya seperti dibawah ini: user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; } Pada baris kode yang ditebalkan dapat diartikan seperti ini, nginx akan membaca seluruh file dengan ekstensi .conf yang ada pada folder /etc/nginx/conf.d/, nah disinilah nantinya kita akan memodifikasi setting-an nginx. 2. Rename file default.conf menjadi default.conf.bak yang ada pada folder /etc/nginx/conf/. Dengan cara ini maka konfigurasi default nginx tidak akan lagi terbaca pada saat service nginx di start. 3. Pada folder yang sama letaknya dengan default.conf tersebut, buatah sebuah file dengan nama real_nginx.conf, penamaan ini tidak harus sama, hanya saja ekstensi file tersebut dan folder tempat meletakkan file tersebut mengikuti setting-an yang ada pada nginx.conf pada langkah 1. Adapun contoh isi dari file real_nginx.conf tersebut adalah sebagai berikut: #OVERRIDE NGINX CONFIGURATION #--------------------------------------------------------- server { listen 80; server_name localhost; access_log /var/log/nginx/nginx_balancer.log; #include all web application configuration include /etc/nginx/conf.d/cluster/*.conf; } #---------------------------------------------------------
  • 5. Pada file ini yang dapat kita pahami adalah sebagai berikut, nginx akan listen pada port 80, dengan nama server-nya adalah localhost, dan dimana semua akses yang masuk ke dalam port 80 dalam service nginx tersebut akan dicatat dalam file /var/log/nginx/nginx_balancer.log. Kemudian nginx akan membaca lagi semua konfigurasi yang terletak pada folder /etc/nginx/conf.d/cluster/. Nah disinilah point utama dari skenario yang kita buat diatas, yaitu setiap kita ingin menambahkan node application server kita hanya menambah file konfigurasi pada folder ini saja, tanpa harus mengubah setting-an file utama konfigurasi yaitu file real_nginx.conf. 4. Langkah berikutnya sebetulnya adalah langkah yang bisa dilakukan berulang-ulang sesuai dengan keinginan kita menambahkan node application server. Buat sebuah file konfigurasi yang merepresentasikan sebuah reverse proxy seperti contoh berikut ini: ###################### DOCUMENTATION ############################# # Each folder on web application must register here as a proxy_pass # and the proxy pass must pointing to name of upstream which is # configured on the /etc/nginx/conf.d/nginx_balancer.conf #----------------------------------------------------------------- location /jasperserver { proxy_pass http://127.0.0.1:3030/jasperserver; } ############################END SCRIPT############################# Contoh konfigurasi diatas adalah sebuah konfigurasi yang membuat supaya aplikasi jasperserver yang tadinya berjalan pada port 3030 bisa diakses pada port 80 dengan URL http://somehost/jasperserver. Inilah yang disebut dengan reverse proxy, dimana sebetulnya client hanya tahu me-request http://somehost/jasperserver, padahal di dalamnya reverse proxy akan meneruskan request tersebut ke http://127.0.0.1:3030/jasperserver. 5. Jika langkah diatas adalah membuat sebuah konfigurasi reverse proxy maka source code dibawah ini adalah konfigurasi Load Balancing. ###################### DOCUMENTATION ############################# # Each folder on web application must register here as a proxy_pass # and the proxy pass must pointing to name of upstream which is # configured on the /etc/nginx/conf.d/nginx_balancer.conf #----------------------------------------------------------------- location /tomcat_admin { proxy_pass http://tc_balancer; } location /manager{ proxy_pass http://tc_balancer; } location /docs{ proxy_pass http://tc_balancer; } location /examples{ proxy_pass http://tc_balancer; } location /host-manager{ proxy_pass http://tc_balancer; } ############################END SCRIPT#############################
  • 6. Pada source diatas terlihat ada URL yang tidak biasa, yaitu http://tc_balancer, URL ini adalah URL Load Balancing yang harus kita setting pada file konfigurasi utama nginx, agar URL ini bisa terbaca oleh nginx maka konfigurasi utama harus kita tambahkan seperti contoh dibawah ini: ######################################################### #BALANCER FOR TOMCAT RUNNING ON PORT 18080 and 28080 etc upstream tc_balancer { ip_hash; server 127.0.0.1:18080; server 127.0.0.1:28080; server 127.0.0.1:38080; server 127.0.0.1:48080; server 127.0.0.1:58080; } #--------------------------------------------------------- #OVERRIDE NGINX CONFIGURATION #--------------------------------------------------------- server { listen 80; server_name localhost; access_log /var/log/nginx/nginx_balancer.log; #include all web application configuration include /etc/nginx/conf.d/cluster/*.conf; } #--------------------------------------------------------- Dengan tambahan yang digaris tebal diatas, maka url tc_balancer akan bisa dibaca oleh nginx sebagai sebuah URL yang valid, dalam code tersebut terlihat bahwa upstream tc_balancer akan mengarah ke server-server yang terdaftar dalam blok kurawal. Demikianlah pemanfaatan Nginx sebagai sebuah Reverse Proxy dan Load Balancing Web Application. Contoh diatas adalah sebuah contoh sederhana pemanfaatan Nginx yang bisa dikembangkan lebih kompleks lagi. Semoga Bermanfaat Salam Josescalia Created For HITZ (Hack In The Zoo) 2013-#1 Kebun Raya Bogor (16 Februari 2013)