Sudah ada 2 jawaban bagus, tetapi masalah kehidupan nyata yang mungkin paling penting belum disebutkan.
Pertama, OP mungkin ingin membaca 2 jawaban sebelumnya dan posting blog kecil ini untuk memahami apa itu keepalives. (Penulis tidak merinci pada bagian tentang TCPI / IP mendapatkan "lebih cepat" semakin lama koneksi terbuka. Memang benar, koneksi yang lebih tahan lama mendapat manfaat dari penskalaan jendela IP , tetapi efeknya tidak signifikan kecuali file-file tersebut besar, atau produk bandwidth-delay terlalu besar.)
Argumen besar terhadap HTTP Keepalive saat menggunakan Apache adalah bahwa ia memblokir proses Apache. Yaitu klien menggunakan keepalives akan mencegah proses Apache 'nya' dari melayani klien lain, sampai klien menutup koneksi atau batas waktu tercapai. Dalam rentang waktu yang sama, instance Apache ini bisa melayani banyak koneksi lainnya.
Sekarang, konfigurasi Apache yang sangat umum adalah Prefork MPM dan interpreter PHP / Perl / Python, dan kode aplikasi dalam bahasa yang disebutkan. Dalam hal ini setiap proses Apache "berat" dalam arti bahwa ia menempati beberapa megabyte RAM (Apache terkait dengan penerjemah dan kode aplikasi). Ini, bersama dengan pemblokiran setiap instance Apache keepalive'd, tidak efisien.
Solusi umum adalah menggunakan 2 server Apache (baik pada server fisik yang sama, atau pada 2 server, sesuai kebutuhan) dengan konfigurasi yang berbeda:
- satu "berat" dengan mod_php (atau bahasa pemrograman apa pun yang digunakan) untuk konten dinamis, dengan tetap mati .
- satu "ringan" dengan satu set modul minimal, untuk menyajikan konten statis (gambar, css, js dll), dengan terus menyala .
Anda kemudian dapat memperluas pemisahan konten dinamis dan statis ini saat diperlukan , misalnya dengan:
- menggunakan server berbasis peristiwa untuk konten statis, seperti nginx .
- menggunakan CDN untuk konten statis (dapat melakukan semua konten statis untuk Anda)
- menerapkan caching konten statis dan / atau dinamis
Pendekatan lain untuk menghindari pemblokiran Apache adalah dengan menggunakan penyeimbang beban dengan penanganan koneksi yang lebih cerdas, seperti Perlbal .
.. dan banyak lagi. :-)