Menambahkan dukungan CloudFlare di Nginx

Bagi kamu yang menggunakan CloudFlare sebagai CDN maka selain kamu bisa dapetin peningkatan kecepatan akses website juga kamu akan lebih aman dari serangan spammer, bot juga DDoS minimal. 

Sistem CloudFlare adalah berposisi sebagai Reverse Proxy di depan website kamu, sehingga semua request yang masuk akan melewati jaringan server CloudFlare baru diteruskan ke server hosting kamu.

Masalahnya kalau kamu asal saja memasang dan mengaktifkan CloudFlare di website kamu dan server Nginx kamu belum disetting untuk mendukungnya, otomatis seluruh alamat IP pengunjung yang masuk akan menggunakan milik CloudFlare. Jelas saja ini akan mencederai hasil software statistik dan analisa yang dipasangkan. Paling sederhana kamu bakal kerepotan membedakan pengunjung karena semuanya melewati CloudFlare.

Sebenarnya CloudFlare itu dalam setiap aksesnya ke server kamu dia akan menyisipkan header berisikan informasi alamat IP sebenarnya dari si pengunjung (CF-Connecting-IP atau X-Forwarded-For) dan ini bisa kita manfaatkan di Nginx untuk mengubahnya menjadi IP address yang asli. Caranya mudah kok. Catatan sebelumnya disini kita akan memanfaatkan modul Nginx bernama ngx_http_realip_module, kalau tidak dikompilasikan (dengan parameter –with-http_realip_module) saat anda menginstall Nginx maka jelas tidak bisa dipakai.

Kembali ke topik. Akseslah file konfigurasi Nginx di /usr/local/nginx/conf/nginx.conf, silahkan dibuka menggunakan teks editor favorit kamu. Kami menggunakan nano:

nano /usr/local/nginx/conf/nginx.conf

Kemudian cari bagian http. Nah… berdasarkan daftar alamat IP CloudFlare silahkan isikan potongan kode berikut ke dalam blok yang saya referensikan diatas:

#CloudFlare IPv4
set_real_ip_from 199.27.128.0/21;
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
set_real_ip_from 103.22.200.0/22;
set_real_ip_from 103.31.4.0/22;
set_real_ip_from 141.101.64.0/18;
set_real_ip_from 108.162.192.0/18;
set_real_ip_from 190.93.240.0/20;
set_real_ip_from 188.114.96.0/20;
set_real_ip_from 197.234.240.0/22;
set_real_ip_from 198.41.128.0/17;
set_real_ip_from 162.158.0.0/15;
set_real_ip_from 104.16.0.0/12;
#CloudFlare IPv6 (Opsional)
#set_real_ip_from 2400:cb00::/32
#set_real_ip_from 2606:4700::/32
#set_real_ip_from 2803:f800::/32
#set_real_ip_from 2405:b500::/32
#set_real_ip_from 2405:8100::/32
real_ip_header CF-Connecting-IP;

Nah mengapa untuk alamat IPv6 kami jadikan komentar? Karena belum tentu NginX yang kamu pakai sanggup menggunakannya (tidak dikompilasi dengan parameter --with-ipv6) dan nanti bisa error saat pengecekan konfigurasinya. Tapi kalau sudah mendukung oke saja, maka anda tinggal menghapus komentarnya (#) saja.


Pengaturan diatas bersifat global dan berlaku untuk seluruh domain yang dimasukkan kedalam nginx. Jika kamu cuma ingin mengaktifkan dukungan IP address untuk satu situs saja kamu harus edit konfigurasi websitenya yang berlokasi didalam direktori /usr/local/nginx/conf/conf.d/


Contohnya dengan perintah nano juga:

nano /usr/local/nginx/conf/conf.d/servernesia.com.conf


Dan geser ke dalam blok server juga isikan alamat IP diatas.

Kalau sudah silahkan restart nginx agar konfigurasi baru diatas akan divalidasi dan diaktifkan kalau tidak bermasalah:


service nginx restart








Komentar

Postingan populer dari blog ini

Kesalahan pada Pemrograman

Log Audit Trail pada Aplikasi Database

Sembunyikan Menu dengan Registry Editor