{"id":4722,"date":"2011-05-30T11:33:00","date_gmt":"2011-05-30T11:33:00","guid":{"rendered":"https:\/\/blog-staging.wowrack.co.id\/2011\/05\/30\/nginx-sebagai-reverse-proxy\/"},"modified":"2024-02-06T14:00:58","modified_gmt":"2024-02-06T07:00:58","slug":"nginx-sebagai-reverse-proxy","status":"publish","type":"post","link":"https:\/\/www.wowrack.com\/id-id\/blog\/technical-blog-id\/nginx-sebagai-reverse-proxy\/","title":{"rendered":"Nginx sebagai reverse proxy"},"content":{"rendered":"<p>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.<\/p>\n<div>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.<\/div>\n<p><\/p>\n<div>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.\u00a0Pada Reverse Proxy ini, Proxy berada di garda depan menerima Rekues HTTP.\u00a0Request (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.<\/div>\n<p><strong>Installasi nginx sebagai reverse proxy dan apache sebagai web server.<\/strong><\/p>\n<div>Dalam catatan kali ini,\u00a0mesin yang digunakan CentOS 5.6 (64bit)<\/div>\n<p><\/p>\n<div>.:: install epel<\/div>\n<p><\/p>\n<div>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.<\/div>\n<p><\/p>\n<pre><br\/><div>[root@martin.server ~]# rpm -Uvh http:\/\/download.fedora.redhat.com\/pub\/epel\/5\/x86_64\/epel-release-5-4.noarch.rpm<\/div><br\/><div><br\/><div>.::\u00a0install nginx<\/div><br\/><pre><br\/><div>[root@martin.server ~]# \u00a0yum install nginx<\/div><\/pre>\n<p><\/p>\n<div>.::\u00a0konfigurasi nginx sebagai reverse proxy<\/div>\n<p><\/p>\n<div>buat file reverse proxy<\/div>\n<p><\/p>\n<pre><br\/><div>[root@martin.server ~]# cd \/etc\/nginx\/conf.d\/<\/div><br\/><div>[root@martin.server conf.d]# nano proxy.conf<\/div><br\/><div>###isi dari file proxy.conf<\/div><br\/><div>proxy_redirect  off;<\/div><br\/><div>proxy_set_header Host  $host;<\/div><br\/><div>proxy_set_header X-Real-IP $remote_addr;<\/div><br\/><div>proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;<\/div><br\/><div>client_max_body_size 10m;<\/div><br\/><div>client_body_buffer_size 128k;<\/div><br\/><div>proxy_connect_timeout 90;<\/div><br\/><div>proxy_send_timeout 90;<\/div><br\/><div>proxy_read_timeout 90;<\/div><br\/><div>proxy_buffers  32 4k;<\/div><\/pre>\n<p><\/p>\n<div>.::\u00a0set-up proxy_pass pada vhost \/ nginx.conf<\/div>\n<p><\/p>\n<pre><br\/><div>[root@martin.server ~]# cd \/etc\/nginx\/conf.d\/<\/div><br\/><div>[root@martin.server conf.d]# nano namadomain.com.conf<\/div><br\/><div>###isi dari file namadomain.com.conf<\/div><br\/><div>server {<\/div><br\/><div>\u00a0 \u00a0listen \u00a080;<\/div><br\/><div>\u00a0 \u00a0server_name \u00a0namadomain.com www.namadomain.com;<\/div><br\/><div>\u00a0 \u00a0access_log \u00a0\/var\/log\/nginx\/namadomain.com.access.log ;<\/div><br\/><div>\u00a0 \u00a0error_log \/var\/log\/nginx\/namadomain.com.error.log ;<\/div><br\/><div>\u00a0 \u00a0location \/ {<\/div><br\/><div> proxy_pass http:\/\/10.100.100.99:8080\/ ; \u00a0 \u00a0 #ip web server<\/div><br\/><div> include  \/etc\/nginx\/conf.d\/proxy.conf;<\/div><br\/><div>\u00a0 \u00a0}<\/div><br\/><div>}<\/div><\/pre>\n<p><\/p>\n<div>.::\u00a0testing konfigurasi dan restart nginx<\/div>\n<p><\/p>\n<pre><br\/><div>[root@martin.server conf.d]# nginx -t<\/div><br\/><div>[root@martin.server conf.d]# \/etc\/init.d\/nginx restart<\/div><\/pre>\n<p><\/p>\n<div>.::\u00a0install rpaf module<\/div>\n<p><\/p>\n<div>mod_rpaf merupakan modul yang diperlukan untuk menerima IP sebenar daripada nginx.<\/div>\n<p><\/p>\n<div>Jika tanpa menggunaka module ini, webserver akan menerima ip dari server nginx.<\/div>\n<p><\/p>\n<pre><br\/><div>[root@martin.server conf.d]# yum install mod_rpaf.x86_64<\/div><\/pre>\n<p><\/p>\n<div>setelah install rpaf, pastikan di konfigurasi httpd.conf module ter-load<\/div>\n<p><\/p>\n<pre><br\/><div>LoadModule rpaf_module \/usr\/lib64\/httpd\/modules\/mod_rpaf-2.0.so<\/div><\/pre>\n<p><\/p>\n<div>konfigurasi httpd.conf untuk menggunakan reverse proxy nginx<\/div>\n<p><\/p>\n<pre><br\/><div>Listen 8080<\/div><\/pre>\n<p><\/p>\n<div>.::\u00a0enable rpaf module pada vhost apache<\/div>\n<p><\/p>\n<pre><br\/><div>[root@server01 ~]# nano \/etc\/httpd\/conf\/httpd.conf<\/div><br\/><div>### add these line in VirtualHost configuration<\/div><br\/><div>\u00a0 \u00a0 \u00a0 \u00a0 RPAFenable \u00a0 \u00a0 \u00a0On<\/div><br\/><div>\u00a0 \u00a0 \u00a0 \u00a0 RPAFsethostname On<\/div><br\/><div>\u00a0 \u00a0 \u00a0 \u00a0 RPAFproxy_ips \u00a0 10.100.100.99 ### can use multiple IP address<\/div><\/pre>\n<p><\/p>\n<div>.:: restart apache<\/div>\n<p><\/p>\n<pre><br\/><div>[root@server01 ~]# \/etc\/init.d\/httpd restart<\/div><\/pre>\n<p><\/p>\n<div>.:: cek port<\/div>\n<p><\/p>\n<pre><br\/><div>[root@server01 ~]# netstat -tlnup |grep 80<\/div><br\/><div>tcp \u00a0 \u00a0 \u00a0 \u00a00 \u00a0 \u00a0 \u00a00 0.0.0.0:80 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a00.0.0.0:* \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 LISTEN \u00a0 \u00a0 \u00a07640\/nginx.conf<\/div><br\/><div>tcp \u00a0 \u00a0 \u00a0 \u00a00 \u00a0 \u00a0 \u00a00 :::8080 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 :::* \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0LISTEN \u00a0 \u00a0 \u00a07654\/httpd<\/div><\/pre>\n<p><\/p>\n<div>testing<\/div>\n<p><\/p>\n<div>akses namadomain.com, seharusnya menunjukkan halaman dari apache, bukan halaman nginx.&nbsp;<\/p>\n<p><em>bila ada kekurangan, mohon dikasih masukan. Terimakasih \ud83d\ude42<\/em><\/p>\n<\/div>\n<p><\/div>\n<div>Blog Wowrack Indonesia<\/div>\n","protected":false},"excerpt":{"rendered":"<p>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 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2252,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[725,948],"tags":[],"class_list":["post-4722","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-technical-blog-id","category-cloud-id","post-wrapper"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/posts\/4722","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/comments?post=4722"}],"version-history":[{"count":0,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/posts\/4722\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/media\/2252"}],"wp:attachment":[{"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/media?parent=4722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/categories?post=4722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wowrack.com\/id-id\/wp-json\/wp\/v2\/tags?post=4722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}