Cara Konfigurasi Nginx Sebagai Reverse Proxy Apache di Ubuntu 16.04

Reverse Proxy

Nginx dan Apache dapat digunakan secara bersamaan di mana Nginx bertindak sebagai reverse proxy yang menerima permintaan dari client dan meneruskannya ke web server lain seperti Apache, kemudian Apache mengirimkan kembali respon yang diminta oleh Nginx untuk dikirimkan ke client. Hal ini dilakukan agar kedua web server ini bisa saling menutupi kekurangan.

Nginx Sebagai Reverse Proxy (keycdn.com)

Install Apache dan PHP-FPM

Install paket Apache dan PHP-FPM

Konfigurasi port Apache.
Ubah Listen 80 menjadi Listen 8080.

Edit file 000-default.conf.
Ubah menjadi

Restart service Apache.

Verfisikasi apakah Apache sudah berjalan di port 8080.

Hasilnya

Konfigurasi Apache Menggunakan mod_fastcgi

Jika sebelumnya sudah terinstall LAMP dan menggunakan mod_php, nonaktifkan module ini terlebih dahulu.

Aktifkan mod_action karena dibutuhkan untuk mod_fastcgi.

Edit file fastcgi.conf

Tambahkan baris kode di bawah ini sebelum penutup IfModule.

Uji konfigurasi Apache apakah tidak ada yang salah.

Restart service Apache

Pengujian PHP

Buat file info.php di dalam folder /var/www/html.

Browsing http://IP_ADDRESS:8080/info.php.
Jika menggunakan PHP-FPM dan Apache hasilnya seperti gambar di bawah ini.

Server API menggunakan FPM/FastCGI
Web server yang digunakan Apache berjalan di port 8080

Membuat Virtual Host untuk Apache

Di sini saya membuat 2 virtual host, sysadmin.id dan devops.id.

Membuat file virtual host sysadmin.id

Isinya

Membuat file virtual host devops.id

Isinya

Cek apakah ada konfigurasi yang salah.

Aktifkan 2 konfigurasi virtual host yang sudah dibuat.

Restart service Apache

Membuat folder root

Membuat file index.html dan info.php.

Browsing untuk melihat hasilnya
http://sysadmin.id:8080
http://sysadmin.id:8080/info.php
http://devops.id:8080
http://devops.id:8080/info.php

Install dan Konfigurasi Nginx

Install Nginx

Di Nginx juga dibuat 2 virtual host, koder.id dan dvloper.id.
Buat file virtual host untuk koder.id.

Isinya

Buat file virtual host untuk dvloper.id.

Isinya

Aktifkan virtual host yang sudah dibuat

Cek apakah ada kesalahan konfigurasi

Restart service Nginx

Membuat folder root

Membuat file index.html dan info.php

Browse untuk menguji hasilnya
http://koder.id
http://koder.id/info.php
http://dvloper.id
http://dvloper.id/info.php

Dari hasil PHP Info bagian PHP Variables terlihat web server yang digunakan Nginx.

PHP Info menggunakan Nginx pada port 80

Konfigurasi Nginx untuk Virtual Host pada Apache

Buat file virtual host baru

Isinya

Request yang masuk ke Nginx port 80 (listen 80) akan dialihkan ke Apache port 8080 (proxy_pass http://127.0.0.1:8080;).

Mengaktifkan virtual host Nginx

Menguji file konfigurasi Nginx

Restart service Nginx

Browsing kembali halaman http://sysadmin.id/info.php dan http://devops.id/info.php.

PHP Info – Nginx proxy reverse Apache

Terlihat bahwa domain yang tadinya hanya bisa diakses melalui port 8080 (Apache) kini bisa diakses melalui port 80 (Nginx). Meskipun port 80 milik Nginx yang digunakan, web server yang digunakan tetap Apache karena request yang masuk dialihkan dari Nginx (80) ke Apache (8080).

Install dan Konfigurasi mod_rpaf

Module mod_rpaf pada Apache berfungsi untuk menulis ulang nilai pada REMOTE_ADDR, HTTPS, dan HTTP_PORT berdasaran nilai yang dikirimkan oleh reverse proxy. Tanpa module ini, beberapa aplikasi berbasis PHP membutuhkan perubahan kode program agar bisa diakses melalui proxy.

Install paket yang dibutuhkan

Download source code mod_rpaf terbaru dari GitHub

Extract file

Masuk ke folder dan compile

Buat file rpaf.load

Masukkan baris kode untuk memanggil module mod_rpaf

Buat file konfigurasi mod_rpaf

Isinya

Aktifkan module

Cek apakah ada kesalahan konfigurasi

Restart service Apache

Browsing salah satu halaman phpinfo() dari website Apache (sysadmin.id atau devops.id). Pada bagian PHP Variables, REMOTE_ADDR nilainya sudah berganti dari 127.0.0.1 menjadi alamat IP public komputer visitor.

Sebelum modul mod_rpaf aktif
Sesudah modul mod_rpaf aktif

2 Comments

  1. pak, saya pakai reverse proxy kenapa sering internal server error missconfiguration ya

    error log incomplete header fastcgi

Leave a Reply

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