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
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
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
Posting Komentar