Keep Alive là gì?
Nếu bạn đã đọc qua bài viết HTTP Succinctly thì hẳn có nghe qua Keep Alive Connection. Ở đây, mình cũng xin được ôn lại, Keep Alive là một phương thức cho phép sử dụng cùng một kết nối TCP cho một chuỗi các phiên giao dịch HTTP thay vì cứ phải tạo mới từng connection cho mỗi một HTTP Request. Bạn có thể hiểu nôm na là Web Server có thể trả về nhiều hơn một file trong cùng một kết nối. (Keep alive còn được biết đến với cái tên persistent connection.)
Làm thế nào để Enable Keep Alive
- Keep Alive có thể được enable bằng cách sử dụng HTTP header
Connection: Keep-Alive
. - Nếu Keep Alive không được enable thì HTTP Header của bạn sẽ giống như thế này
connection:close
- Cách để enable Keep Alive khác nhau tùy thuộc vào Web Server mà bạn đang sử dụng. Ở đây, mình chỉ quan tâm đến 2 Web Server thông dụng là Apache và Nginx.
Enable Keep Alive bằng .htaccess
Chỉ cần thêm dòng sau vào file .htaccess của bạn
<ifModule mod_headers.c> Header set Connection keep-alive </ifModule>
Enable Keep Alive trong Apache
Trường hợp này áp dụng khi bạn có toàn quyền cấu hình Server Apache của bạn:
#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On
#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 100
Enable Keep Alive trong Nginx
Trong cài đặt và cấu hình mặc định thì Nginx luôn Enable Keep Alive, trừ khi chính bạn muốn tắt nó bằng cách dùng directive keepalive_disable
, chúng ta có thể chỉ định disable keep alive cho từng User Agent (Browser cụ thể).
Xem thêm - http://wiki.nginx.org/HttpCoreModule#keepalive_disable
Kết luận
Keep Alive được dùng để tối ưu hóa tốc độ tải trang nhằm đem lại trải nghiệm tốt hơn cho người dùng. Mặc định thì Keep Alive luôn được mở khi cài đặt Apache hoặc Nginx, nhưng một số nhà cung cấp dịch vụ shared hosting có thể đã tắt nó nhằm tránh quá tải cho hệ thống của họ, vì vậy, luôn để ý và test kỹ xem Server của mình có enable keep alive không nhé. (Bằng cách quan sát HTTP Response hoặc sử dụng PageSpeed Tool để kiểm tra).