Django + PHP on Nginx via FastCGI

Untuk instalasi  sudah sangat lengkap dijelaskan di situs resminya.


Install Django via FstCGI bisa dibaca di http://wiki.nginx.org/NginxDjangoFastCGI


dan untuk install PHP bisa dibaca di http://wiki.nginx.org/PHPFcgiExample


Oke, setelah semua terpasang, maka tiba saatnya untuk melakukan pengaturan untuk mendapatkan performa server yang prima.


1. Ketahui Apa yang Server Anda Miliki


Hal yang pertama dan seharusnya Anda sudah tahu adalah, menginventarisir spesifikasi server yang Anda gunakan, terutama tentang prosesor Apa yang digunakan, berapa core nya, berapa besar RAM, dan berapa luas space harddisk.


2. Tentukan Apa yang Server Anda Akan Kerjakan


Buatlah list apa yang Akan dikerjakan server Anda, misal: berapa situs yang Akan dilayani. berapa yang pake Django, berapa yang pake PHP.


3. Berbuat Adil


Setelah Anda tahu apa yang akan dikerjakan server, dan juga mengetahui kemampuan (spesifikasi) server yang Anda gunakan, Maka Anda kini bisamembuat skala prioritas dan pembagian jatah resource server.


4. Caching, keepalive_timeout, gzip


Sebisa mungkin lakukan caching dari sisi aplikasi (web application) yang Anda gunakan. Untuk django silakan gunakan cachieng middleware. Jika memory lebih dari cukup banyak yang menyarankan memcached, tapi jika memory irit, apalagi pas-pasan mungkin file system caching lebih membantu.


Setiap koneksi yang sedang berlangsung antara client dan server di sisi server akan mengakibatkan proses yang idle dan tentu saja membutuhkan sejumlah memory, Hal ini akan menjadi masalah ketika banyak koneksi sekaligus sehingga akan banyak menguras RAM.


Transfer data dari server ke browser akan lebih cepat rampung jika kita mengimplementasikan kompresi gzip.


————


Contohnya misal begini, WARNING! angka2 disini sungguh fiktif belaka.


1. Kita punya server dual core ram 2GB, misal kita asumsikan bisa menangani 25 thread


2.  Server ini akan melayani 3 domain django dan 2 domain menggunakan php, kita sebut saja domain A, B,C: django  D,E: php


3. Misal domain A diperkirakan akan memiliki traffik yang tinggi, maka disini kita perlu memberi jatah yang sepadan, agar pada saatnya nanti domain A dapat bertahan saat orang-orang mulai membukanya. Jadi misal kita kasih A:10 thread, B-E masing2 5 thread


4. nginx.conf


keepalive_timeout   5;
gzip                             on;
gzip_comp_level     8;
gzip_types          text/plain text/css application/json application/x-javas
gzip_buffers        4 8k;
gzip_disable        “MSIE [1-6]\.(?!.*SV1)”;


Semakin lama setting keepalive maka konsumsi RAM akan jauh meningkat saat peak time. Nyalakan gzip untuk browser selain IE 6 kebawah. Karena IE6 itu tidak mendukung gzip. Caching? silakan dibaca dokumentasinya.


Sekian laporan langsung dari TKP,Sebuah server yang pas-pas an.


^_^


–fin

Komentar

Postingan populer dari blog ini