[FlashBackBlog] Menggunakan nGinX sebagai Reverse Proxy

Nginx, adalah sebuah webserver opensources yang dikembangkan dari keturunan Apache. Nginx, seperti apache, memiliki fungsi melakukan publikasi dokumen dalam sistem, ke sisi publik, melalui protokol HTTP atau port default 80. Nginx, adalah singkatan dari Engine-X. nGinX. Memiliki tingkat keringanan eksekusi dokumen yang lebih kencang daripada Apache. Namun tentu saja beberapa kekurangannya adalah kelengkapan modul yang diperlukan oleh web, kalah oleh Apache. Namun demikian untuk web-web biasa, atau sistem informasi biasa, tidak terlalu membutuhkan modul-modul terlalu lengkap.

Nginx, sudah ada di dalam repository linux, baik berbasis Redhat, Debian, Ubuntu, dan lain sebagainya. Dapat juga dilakukan instalasi secara custom dari source code. Untuk instalasi secara repository, dapat dilakukan demikian :



dan lain sebagainya.

Untuk instalasi secara source code, dapat dilakukan hal berikut ini :
1. download source-code : http://nginx.org/en/download.html
2. extract : tar -xzvf nginx
3. configure kompilasi : cd nginx; ./configure –prefix=/opt/nginx
4. kompilasi : make && make install

Untuk nginx berbasis repository, dapat langsung distart :

Atau

Untuk menghentikannya, dilakukan dengan cara mengganti kata start dengan stop. Untuk yang berasal dari kompilasi sourcecode, dapat dilakukan seperti berikut:

Sedangkan mematikannya dapat dengan

Untuk memastikan apakah nginx hidup atau mati dapat dilakukan dengan :

Konfigurasi nginx cukup mudah. Bagi yang telah terbiasa dengan konfigurasi apache, tentu tidak akan sulit melakukan konfigurasi nginx. Ada sedikit perbedaan sintaks konfigurasi, namun masih mudah untuk diikuti. Nginx, dalam operasionalnya akan dipanggil dengan nama panggil atau domain atau yang disebut dengan server name. Lokasi file konfigurasi nginx berada di :

atau ada di

Konfigurasi yang paling perlu diperhatikan adalah pada bagian :

Dengan bagian

Adalah bagian yang digunakan untuk memuat konfigurasi modul dan konfigurasi virtualhost. Tentang virtualhost dapat dilihat pada bagian sebelumnya.

Pengaturan virtualHost dapat dilakukan dengan melakukan penambahan file pada /etc/nginx/sites-enabled/ seperti berikut ini:

Isi tiap filenya kurang lebih akan sebagai berikut.

Hal tersebut berfungsi jika nginx akan digunakan sebagai web server murni yang akan membuka dokumen yang berada di direktori /home/bimosaurus/public_html dibuka sebagai bimosaurus.com. Namun nginx juga dapat difungsikan sebagai Reverse Proxy, yaitu sebuah webserver depan (proxy depan) yang mengambil resource web yang ada di belakangnya. Biasanya model reverse proxy ini digunakan untuk web-web yang memiliki static content sangat besar dan memiliki beban tarik sangat tinggi. Nginx akan melakukan penyimpanan content-content static dalam fungsi proxynya.

Dalam contoh diatas, saya mengalihkan panggilan bimosaurus.com, akan saya ambilkan sourcenya dari http://127.0.0.1:80, dari satu mesin yang sama, namun dengan listen IP Address yang berbeda. Adapun ada bagian tengah yang saya fungsikan untuk mengambil secara langsung direct access mengambil konten-konten statik. Syarat bisa hidup dua port 80 pada satu mesin adalah, tidak boleh memiliki IP Listen yang sama.
Jadi pada bagian /etc/nginx/nginx.conf bagian listen dihapus seperti berikut:

Dan pada bagian apache, Listen diarahkan ke 127.0.0.1. Yaitu pada file /etc/httpd/conf/httpd.conf

Dan pada virtualHost dimasukkan sebagai berikut


ServerName bimosaurus.com
ServerAlias www.bimosaurus.com
DocumentRoot /home/bimosaurus/public_html

Untuk pengaturan Apache dapat dilihat pada http://bimosaurus.com/2015/06/13/flash-back-virtualhost-apache-dan-nginx/

Masalah listen address, silakan melihat pada bagian berikut : http://bimosaurus.com/2015/02/16/konsep-listen-dalam-network-service/, pastikan selalu menggunakan netstat -tapn untuk dapat melihat port dan IP Address yang menyala.

One thought on “[FlashBackBlog] Menggunakan nGinX sebagai Reverse Proxy

Leave a Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">