Gzip là thuật toán nén phổ biến nhất được sử dụng để nén các tệp web và giảm kích thước của chúng. Thuật toán nén là một cách tạo tệp (ví dụ. HTML, CSS, JavaScript và các nội dung web khác) nhỏ hơn nên chiếm ít dung lượng hơn. Sử dụng nén Gzip trên trang web của bạn có thể giúp tăng tốc thời gian tải trang cho khách truy cập vì các tệp nhỏ hơn có thể được tải xuống nhanh hơn. Trung bình, Gzip có thể đạt được tốc độ nén khoảng 60-80% đối với các tệp dựa trên văn bản, chẳng hạn như HTML và CSS.
Gzip hoạt động như thế nào? Tóm lại: Gzip nén một tệp trước khi nó được gửi đến trình duyệt của người dùng (tức là khách truy cập trên trang web của bạn) và sau đó trình duyệt của họ sẽ tự động giải nén tệp Gzipipped để tải toàn bộ tệp gốc trong trình duyệt của họ.
Hầu hết các máy chủ web hiện đại đều hỗ trợ nén Gzip và nó thường được bật theo mặc định. Để kiểm tra xem Gzip có được bật trên trang web của bạn hay không, bạn có thể sử dụng kiểm tra nén Gzip hoặc kiểm tra tốc độ trang web của chúng tôi.
Bật nén Gzip trong Apache bằng tệp .htaccess
Bạn thực sự có thể sử dụng hai mod Apache khác nhau để bật nén HTTP Gzip: mod_gzip và mod_deflate. Mod_gzip cho phép nén Gzip và mod_deflate giúp bạn có thể nén đầu ra từ máy chủ của bạn trước khi nó được gửi đến khách truy cập của bạn (điều này cũng tương tự). Vì vậy, bạn nên nén tài nguyên của mình bằng Gzip hay xì hơi? Cuối cùng, điều đó không quan trọng lắm, cả hai mô-đun sẽ cung cấp cho bạn cùng một nén Gzip tối đa có thể. Tuy nhiên, theo nguyên tắc chung, bạn nên sử dụng mod_deflate vì nó được hỗ trợ rộng rãi hơn so với mod_gzip. Mod_deflate cũng được ghi lại tốt hơn và dễ cấu hình hơn. Nếu mod_deflate không hoạt động trên máy chủ của bạn, bạn vẫn có thể sử dụng mod_gzip. Không phải mọi máy chủ đều bật các mô-đun này trên máy chủ của họ, vì vậy hãy đảm bảo rằng bạn hỏi máy chủ của mình về điều này khi các tập lệnh .htaccess bên dưới không hoạt động. Thêm một trong các tập lệnh dưới đây vào tệp .htaccess của bạn (có thể được tìm thấy hoặc nên được đặt trong thư mục gốc của trang web của bạn (thường là /var/www/html/)):
Để bật mod_deflate (khuyến nghị):
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/javascript
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE image/x-icon
AddOutputFilterByType DEFLATE image/svg+xml
AddOutputFilterByType DEFLATE application/rss+xml
AddOutputFilterByType DEFLATE application/javascript
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml
AddOutputFilterByType DEFLATE application/x-font
AddOutputFilterByType DEFLATE application/x-font-truetype
AddOutputFilterByType DEFLATE application/x-font-ttf
AddOutputFilterByType DEFLATE application/x-font-otf
AddOutputFilterByType DEFLATE application/x-font-opentype
AddOutputFilterByType DEFLATE application/vnd.ms-fontobject
AddOutputFilterByType DEFLATE font/ttf
AddOutputFilterByType DEFLATE font/otf
AddOutputFilterByType DEFLATE font/opentype
# For Olders Browsers Which Can't Handle Compression
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
</IfModule>
Để bật mod_gzip (lựa chọn sao lưu thứ hai):
<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_include mime ^text/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_include handler ^cgi-script$
</ifModule>
Tải xuống tập lệnh trên trong tệp .htaccess tại đây.
Lưu ý:
Khi bạn chỉ muốn nén một số thành phần nhất định hoặc một loại tệp nhất định bằng Gzip, hãy đảm bảo rằng bạn đưa loại tệp này vào một trong các danh sách trên. Và một lần nữa, hãy đảm bảo rằng ít nhất một trong các mod được bật trên máy chủ. Nếu bạn không muốn nén một loại tệp nhất định, chỉ cần xóa loại tệp này khỏi mã.
Bật nén Gzip trong Nginx
Vui lòng làm theo các bước dưới đây để bật Gzip trong Nginx:
Bước 1: Chỉnh sửa tệp cấu hình Nginx
Mở tệp cấu hình Nginx cho trang web của bạn bằng trình soạn thảo văn bản ưa thích của bạn. Tệp cấu hình thường nằm trong /etc/nginx/nginx.conf hoặc /etc/nginx/sites-available/your-site.conf, tùy thuộc vào thiết lập của bạn.
Bước 2: Thêm mã sau vào khối http:
gzip on;
gzip_types text/plain text/xml text/css application/json application/javascript application/xml application/xml+rss text/javascript image/svg+xml;
gzip_vary on;
gzip_comp_level 6;
gzip_buffers 16 8k;
gzip_http_version 1.1;
Đây là những gì mỗi dòng làm:
- gzip bật; bật tính năng nén Gzip.
- gzip_types chỉ định các loại tệp cần được nén. Bạn có thể thêm hoặc xóa các loại tệp nếu cần.
- gzip_vary tiếp; thêm tiêu đề Vary: Accept-Encoding vào phản hồi, yêu cầu máy chủ bộ nhớ đệm lưu trữ nhiều bản sao của phản hồi cho các loại nén khác nhau.
- gzip_comp_level đặt mức nén. Giá trị có thể nằm trong khoảng từ 1 đến 9, với 1 là nhanh nhất và ít nén nhất, và 9 là chậm nhất và được nén nhiều nhất. Giá trị 6 là sự cân bằng tốt giữa tốc độ và nén.
- gzip_buffers đặt số lượng và kích thước của bộ đệm bộ nhớ được sử dụng để nén.
- gzip_http_version chỉ định phiên bản HTTP tối thiểu cần thiết để sử dụng nén Gzip.
Bước 3: Khởi động lại máy chủ và kiểm tra
Sau khi thực hiện các thay đổi đối với cấu hình file, lưu và đóng nó, sau đó khởi động lại Nginx bằng lệnh sau: sudo service nginx restart
Đó là nó! Bây giờ hãy kiểm tra trang web của bạn bằng cách sử dụng kiểm tra gzip của chúng tôi để xem những gì bạn đã thay đổi có hoạt động hay không!
Gzip trên máy chủ Windows (Trình quản lý IIS)
Khi trang web của bạn được lưu trữ trên máy chủ Windows, bạn có thể bật tính năng nén cho cả tệp tĩnh và tệp động. Khá dễ dàng để thiết lập điều này trong trình quản lý IIS:
- Mở Windows Feat
- Nhấp vào trang web bạn muốn bật tính năng nén
- Nhấp vào “Nén” (trong IIS)
- Bây giờ hãy đảm bảo rằng các hộp “Bật nén nội dung động” và “Bật nén nội dung tĩnh” được đánh dấu và bạn đã hoàn tất!
Khi bạn không thể làm cho nó hoạt động, hãy truy cập trang này để tìm hiểu cách khác bạn có thể thiết lập nó trong IIS 10.
Bật Gzip trong WordPress
Có nhiều plugin có sẵn để bật nén gzip trong WordPress. Chúng rất dễ tìm thấy trong phần “Thêm plugin” của quản trị viên WordPress, một số hoạt động tốt hơn những người khác. Tuy nhiên, xin lưu ý rằng bạn nên luôn sử dụng một trong các phương pháp phía máy chủ ở trên để kích hoạt Gzip.
Brotli – Một giải pháp thay thế tốt hơn cho Gzip?
Câu trả lời ngắn gọn: Có, nhưng với một ghi chú. Brotli là gì? Brotli là một thuật toán nén được phát triển bởi Google vào năm 2013. Trung bình, Brotli có thể đạt được tốc độ nén tốt hơn 20-30% so với Gzip. Trong các trường hợp sử dụng thực tế, Brotli có thể đạt được tốc độ nén lên đến 90% cho các tệp dựa trên văn bản (ví dụ. HTML, CSS và JavaScript). Brotli cũng có tốc độ giải nén nhanh hơn Gzip.
Lưu ý: Brotli ban đầu được phát triển để sử dụng với trình duyệt web Google Chrome, nhưng sau đó đã được hầu hết các trình duyệt web và máy chủ web khác chấp nhận. Thật không may, chưa phải tất cả. Đây là lý do tại sao, tại thời điểm này, tốt hơn hết bạn nên sử dụng Gzip làm phương pháp nén chính cho tất cả các trình duyệt. Tuy nhiên, bạn có thể sử dụng “chiến lược chuyển đổi”, nơi bạn có thể chuyển đổi giữa Gzip và Brotli tùy thuộc vào trình duyệt mà người dùng đang sử dụng. Thông tin thêm về điều này rất sớm!





