Blog Wowrack

Nginx sebagai reverse proxy

Yosia     30 May 2011     Blog Teknikal / Infrastruktur Cloud     0 Comments

Nginx (baca: engine x) adalah server HTTP dan reverse proxy gratis berbasis open-source berkemampuan tinggi. Perangkat lunak ini diciptakan oleh Igor Sysoev pada tahun 2002, dan dirilis untuk pertama kalinya secara umum pada tahun 2004. Nginx terkenal karena performanya yang tinggi, stabil, memiliki banyak fitur, mudah dikonfigurasi, dan menggunakan sedikit sumberdaya pada server.

Kalau saya sebutkan kata Proxy mungkin yang pertama terlintas dibenak orang kebanyakan adalah server yang berjalan antara komputer kita (client) dan internet. Dan umumnya berfungsi sebagai caching halaman-halaman web yang pernah dikunjungi, pengalokasian bandwidh, atau rule mengenai user, content filtering dan fungsi-fungsi lainnya yang diusung oleh bermacam aplikasi Proxy.

Sebenarnya jenis proxy tersebut adalah Forward Proxy. Sebaliknya, ada jenis Proxy yang berjalan dari sisi lainnya yaitu sisi server, Web Server lebih tepatnya, dan inilah yang dimaksud dengan Reverse Proxy. Pada Reverse Proxy ini, Proxy berada di garda depan menerima Rekues HTTP. Request (umumnya diport 80). Di port 80 Reverse Proxy tidak menggantikan fungsi Web Server, melainkan dia akan melanjutkan rekues HTTP tersebut ke Web Server untuk diolah.

Installasi nginx sebagai reverse proxy dan apache sebagai web server.

Dalam catatan kali ini, mesin yang digunakan CentOS 5.6 (64bit)

.:: install epel

Karena default repo pada mesin tidak ada paket nginx, maka perlu menambahkan EPEL. EPEL (Extra Packages for Enterprise Linux) adalah kumpulan paket-paket rpm dari fedora yang dapat digunakan pada Enterprise Linux yaitu RHEL dan CentOS.


[root@martin.server ~]# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm


.:: install nginx


[root@martin.server ~]#  yum install nginx

.:: konfigurasi nginx sebagai reverse proxy

buat file reverse proxy


[root@martin.server ~]# cd /etc/nginx/conf.d/

[root@martin.server conf.d]# nano proxy.conf

###isi dari file proxy.conf

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

client_max_body_size 10m;

client_body_buffer_size 128k;

proxy_connect_timeout 90;

proxy_send_timeout 90;

proxy_read_timeout 90;

proxy_buffers 32 4k;

.:: set-up proxy_pass pada vhost / nginx.conf


[root@martin.server ~]# cd /etc/nginx/conf.d/

[root@martin.server conf.d]# nano namadomain.com.conf

###isi dari file namadomain.com.conf

server {

   listen  80;

   server_name  namadomain.com www.namadomain.com;

   access_log  /var/log/nginx/namadomain.com.access.log ;

   error_log /var/log/nginx/namadomain.com.error.log ;

   location / {

proxy_pass http://10.100.100.99:8080/ ;     #ip web server

include /etc/nginx/conf.d/proxy.conf;

   }

}

.:: testing konfigurasi dan restart nginx


[root@martin.server conf.d]# nginx -t

[root@martin.server conf.d]# /etc/init.d/nginx restart

.:: install rpaf module

mod_rpaf merupakan modul yang diperlukan untuk menerima IP sebenar daripada nginx.

Jika tanpa menggunaka module ini, webserver akan menerima ip dari server nginx.


[root@martin.server conf.d]# yum install mod_rpaf.x86_64

setelah install rpaf, pastikan di konfigurasi httpd.conf module ter-load


LoadModule rpaf_module /usr/lib64/httpd/modules/mod_rpaf-2.0.so

konfigurasi httpd.conf untuk menggunakan reverse proxy nginx


Listen 8080

.:: enable rpaf module pada vhost apache


[root@server01 ~]# nano /etc/httpd/conf/httpd.conf

### add these line in VirtualHost configuration

        RPAFenable      On

        RPAFsethostname On

        RPAFproxy_ips   10.100.100.99 ### can use multiple IP address

.:: restart apache


[root@server01 ~]# /etc/init.d/httpd restart

.:: cek port


[root@server01 ~]# netstat -tlnup |grep 80

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      7640/nginx.conf

tcp        0      0 :::8080                     :::*                        LISTEN      7654/httpd

testing

akses namadomain.com, seharusnya menunjukkan halaman dari apache, bukan halaman nginx. 

bila ada kekurangan, mohon dikasih masukan. Terimakasih 🙂

Blog Wowrack Indonesia

Tinggalkan komentar



Dapatkan Konsultasi Gratis Untuk Bisnis Anda
Logo Wowrack Horizontal breathing space-02
Surabaya (Kantor Pusat)
Jl. Genteng Kali No. 8, Kel. Genteng,
Surabaya, Jawa Timur 60275
Indonesia

Jakarta (Kantor Penjualan)
Menara BCA Lt. 50 Unit 4546,
Jakarta Pusat, DKI Jakarta 10310
Indonesia

© 2024 Wowrack dan afiliasinya. Hak cipta dilindungi undang-undang.