Về CloudFlare
CloudFlare (CF) đóng vai trò là 1 proxy trung gian bao gồm nhiều dịch vụ giúp tăng tốc website của bạn. Thay vì các request được gửi trực tiếp đến web server của bạn, thì CF sẽ làm nhiệm vụ làm kết nối trung gian, mỗi request sẽ được CF xử lí trước và sau đó gửi tới web server. Railgun là 1 trong những dịch vụ của CF.
Railgun để làm gì ?
1 trong những lợi thế chính khi sử dụng CF là những nội dung có thể cache (ảnh, js, css, …) đều được cache lại bởi CF, được lưu lại trên nhiều data center trên khắp thế giới để phục vụ user. Nhưng chỉ 66% nội dung của 1 trang web là có thể cache, 34% nội dung còn lại (các nội dung động) còn lại phải lấy từ web server chính. Railgun được đưa ra để giải quyết vấn đề này, giúp giảm tải băng thông và load time.
Railgun hoạt động như thế nào ?
Railgun gồm 2 thành phần: Listener và Sender. Railgun Listener được cài đặt trên cùng server với web server gốc, hoặc 1 server riêng biệt có thể truy cập tới web server và cho phép CF có thể truy cập vào. Điều đó có nghĩa là nếu muốn sử dụng, ta phải tự cài đặt Railgun Listener trên server của mình. Railgun Sender được cài đặt trên tất cả data center của CF và duy trì kết nối với Railgun Listener.
1 website sử dụng CF, khi có HTTP request tới, CF sẽ xác định xem website này có sử dụng dịch vụ Railgun không. Nếu không, HTTP request sẽ được gửi trực tiếp đến web server. Nhưng nếu có, HTTP request sẽ được gửi tới Railgun Sender để xử lí. Railgun Sender biến HTTP request được gửi tới thành các gói tin nhị phân được nén và gửi tới Railgun Listener. Railgun Listener xử lí gói tin nhận được và thực hiện 1 HTTP request tới web server.
Railgun Listener sử dụng cơ chế cache mới dựa trên so sánh các version của page để xác định xem cái gì cần gửi tới Railgun Sender. Bằng cách sử dụng cơ chế này mà CF có thể đạt được tỉ lệ nén 99.69% ( 1 page có kích thước 100k giảm xuống còn 400 bytes ) và tăng tốc lên tới 700%.
Các kết nối của Railgun đều được bảo mật bằng TLS nên không thể bị nghe lén. Kết nối TCP giữa Railgun Sender và Railgun Listener luôn được duy trì nên sẽ tránh được thời gian trễ khi thiết lập kết nối TCP đảm bảo tốc độ cao nhất có thể.
Giá thành
Để sử dụng Railgun, bạn phải bỏ ra 200$ mỗi tháng cho 1 domain (bao gồm các subdomain).
Cài đặt Railgun
Railgun Listener là 1 background service chạy trên hệ điều hành Linux 64-bit. Ta cần thêm 1 Memcache instance để Railgun Listener có thể hoạt động bình thường. Cần mở cổng (thường là cổng 2408) cho Railgun Listener để Railgun Sender có thể kết nối đến được. Server cài đặt Railgun Listener nên có kết nối Internet nhanh.
Chi tiết cách cài đặt Railgun sẽ được giới thiệu ở bài viết sau.