HƯỚNG DẪN Kích hoạt tính năng HTTP/2 trên Nginx

Thảo luận trong 'KIẾN THỨC VPS/SERVER' bắt đầu bởi quyet1990, 29/11/16.

  1. quyet1990

    quyet1990 New Member

    Tham gia ngày:
    22/10/16
    Bài viết:
    220
    Đã được thích:
    0
    HTTP/2 là giao thức thế hệ mới thay thế cho giao thức phổ biến HTTP/1.1 mà bạn sử dụng trong công việc hàng ngày của bạn khi duyệt Internet. Dựa trên SPDY, giao thức HTTP mới này là tập trung vào việc cung cấp hiệu suất tốt nhất giữa các kết nối mạng và end users. Cụ thể, nó cải thiện độ trễ của người dùng cuối và sử dụng mạng. Mục tiêu chính của nó là cho phép sử dụng một kết nối duy nhất giữa các trình duyệt máy khách và các trang web.

    Các tính năng chính của HTTP/2
    True multiplexing
    : HTTP/2 cho phép các yêu cầu được đáp ứng song song và trong trật tự, chứ không phải như trong giao thức HTTP / 1.1.
    Single persistent connection: Với tính năng true multiplexing, tất cả các đối tượng được đặt trên một trang web có thể được tải về song song sử dụng chỉ cần một kết nối duy nhất. Đối với HTTP /1.1, nếu bạn muốn tải về đối tượng song song, bạn buộc phải mở nhiều kết nối (không hiệu quả về sử dụng mạng).
    Binary encoding: Headers được gửi mã hóa trong định dạng nhị phân. Điều này cho phép bạn tiết kiệm các byte trên đường truyền cho đến khi thông tin đạt đến trình duyệt của khách hàng. Đối với HTTP/1.1, nó được gửi bằng plain text điều này gây khó khăn đối với việc sử dụng băng thông.
    Header compression: Headers cũng được nén với nén HPACK, giúp giảm tổng số lượng dữ liệu trên mạng.
    SSL/TLS encryption: Với HTTP/2 mã hóa SSL/TLS bắt buộc phải sử dụng. Điều này được kiểm soát và được xác định bởi các trình duyệt web (thay vì bằng RFC) hiện đang hỗ trợ các giao thức HTTP/2 mới. HTTP/2 không chỉ quan tâm đến tốc độ, mà còn về bảo mật của bạn bằng cách áp dụng mã hóa SSL/TSL là một yêu cầu bắt buộc.

    Ghi chú trước khi cho phép HTTP/2 trên Nginx
    1. HTTP/2 hiện đang có sẵn cho người sử dụng Nginx và người sử dụng Nginx Plus (phiên bản thương mại của Nginx).

    2. Nếu bạn không có mã hóa SSL trên trang web của bạn, bạn phải chuyển hướng tất cả lưu lượng đến SSL/TLS, do HTTP/2 bắt buộc phải có mã hóa SSL/TLS. Hãy chắc chắn rằng trang web của bạn được cấu hình đầy đủ để làm việc với một chứng chỉ SSL.

    3. SPDY và HTTP/2 không thể chạy cùng nhau. Hủy bỏ tùy chọn 'spdy' từ tất cả chỉ thị listen bên trong các cấu hình Nginx, và thay thế nó với các thông số ‘http2 ' và ' SSL '.

    Kích hoạt HTTP/2 trên Nginx
    Để kích hoạt HTTP/2 hỗ trợ trên Nginx, chỉ cần thêm tùy chọn "http2" đến các chỉ thị listen mà trước đó bạn đã có. Hãy nhớ bao gồm các thông số SSL, ví dụ:
    Mã:
     listen 443 ssl http2 default_server; 
    Kết quả đầu ra bên trong các block sercer{}:
    Mã:
    server {listen 443 ssl http2 default_server
    ssl_certificate /etc/nginx/conf/ssl.crt/yoursite.com.crt; ssl_certificate_key /etc/nginx/conf/ssl.key/yoursite.com.key; ... ... }
    
    Khởi động lại Nginx để áp dụng thay đổi:
    Mã:
    nginx -s
    Kiểm tra HTTP/2 đã làm việc trên trang web của bạn
    Có một add on cho trình duyệt được gọi là " HTTP/2 and SPDY indicator " Nó có sẵn từ cửa hàng Google Chrome và Firefox.

    Các trình duyệt không hỗ trợ HTTP/2
    Bởi vì hiện nay 50% các trình duyệt vẫn không hỗ trợ HTTP/2, các kỹ sư Nginx đã tạo ra cái mà họ gọi là " Next Protocol Negotiation (NPN).”. Đây là một phần mở rộng TLS cho phép Nginx xử lý các yêu cầu HTTP /1.x nếu trình duyệt không hỗ trợ đầy đủ HTTP / 2.
     

Chia sẻ trang này

Đang tải...