CloudFlare menyediakan layanan yang dapat meningkatkan performa sekaligus melindungi situs web yang menggunakannya sebagai proxy. CloudFlare mengompress file-file statis seperti HTML, CSS, JavaScript, gambar dan lainnya sebelum mengirimkan file-file tersebut ke browser pengunjung. Selain itu CloudFlare mengirimkan file-file tersebut melalui server mereka yang terdekat dengan lokasi pengunjung secara geografis. Dengan cara ini situs akan terlihat lebih responsif terhadap permintaan dari browser pengunjung.
Namun, ada satu masalah yang muncul saat pemilik situs web menggunakan CloudFlare sebagai proxy untuk situs webnya, yaitu IP yang tercatat di server mereka adalah IP server CloudFlare yang menjadi proxy. Ini tentu akan menjadi masalah jika pemilik situs web butuh untuk mengetahui dari mana saja asal pengunjung situsnya. Atau, analisa-analisa lainnya yang membutuhkan informasi IP asli dari pengunjung situsnya.
Beruntungnya, CloudFlare menyediakan cara agar pemilik situs dapat mengetahui IP asli pengunjung situs web mereka saat menggunakan CloudFlare. Di artikel ini hanya akan membahas penggunaan cara tersebut di web server Nginx seperti yang kami gunakan. Untuk panduan web server lainnya, silakan merujuk pada artikel rujukan kami yang tautannya kami lampirkan di akhir artikel ini.
Konfigurasi web server Nginx
Saat penulisan artikel ini, kami menggunakan web server Nginx yang kami install dari repository Extra Packages for Enterprise Linux (EPEL) di server yang menggunakan CentOS sebagai sistem operasinya. Versi Nginx dari proyek EPEL ini sudah menyertakan module http_realip
untuk menyelesaikan tugas ini. Pengecekan apakah module ini sudah aktif di Nginx yang terpasang di server kita, dapat menggunakan perintah nginx -V
dan pastikan ada keterangan --with-http_realip_module
di antara responnya.
Setelah yakin bahwa Nginx sudah dilengkapi module yang dibutuhkan, maka buka file konfigurasi Nginx dan tambahkan baris-baris berikut ini ke blok http
-nya.
set_real_ip_from 103.21.244.0/22;
real_ip_header CF-Connecting-IP;
Untuk baris-baris set_real_ip_from di atas perlu untuk memasukkan semua IP yang daftarnya tersedia di situs web CloudFlare di halaman https://www.cloudflare.com/ips/. Kami hanya menuliskan 1 baris di atas sebagai contoh. IP-IP ini menurut CloudFlare sering berubah, maka CloudFlare menyarankan pemilik situs untuk sering-sering memeriksa halaman tersebut untuk memperbarui daftar IP di server pemilik situs jika terdapat perubahan.
Setelah file konfigurasi disimpan, restart service Nginx dan cek kembali log Nginx. Setelah penambahan baris-baris di atas, akan terlihat IP yang muncul di log Nginx adalah IP-IP asli milik pengunjung, bukan lagi IP milik server-server CloudFlare.
Semoga bermanfaat!
Referensi:
https://support.cloudflare.com/hc/en-us/articles/200170786-Restoring-original-visitor-IPs