Hướng dẫn kích hoạt HTTP 2.0 trên Plesk

Cao Lương Mạnh Toàn 6 phút đọc

1. HTTP 2.0 là gì?
HTTP/2 còn gọi là HTTP/2.0 hay HTTP 2.0 là phiên bản chính thức thứ 2 của giao thức mạng HTTP được dùng cho World Wide Web. Được phê chuẩn vào tháng 5 năm 2015. HTTP 2.0 được tạo ra để giải quyết các vấn đề về hiệu năng của của HTTP 1.1. Hiện tại HTTP 2.0 đang được hỗ trợ bởi các trình duyệt web lớn.

Thông tin chi tiết các bạn tham khảo thêm tại đây.

2. Hướng dẫn bật HTTP 2.0 trên Plesk.

Trước tiem đảm bảo rằng Nginx Webserver của bạn đã cập nhật lên phiên bản mới nhất và đang hoạt động. Bản có thể kiểm tra bằng cách truy cập vào bảng điều khiển Plesk với quyền admin sau đó tìm đến mục “Tools & Settings”  ->  “Server Components” Management” nhập nginx  để tìm kiếm.

Sau đó kiểm tra service có hoạt đông không bằng cách truy cập vào  “Tools & Settings -> “Services

image 76463

Sau khi kiểm tra mọi thứ đã ổn, bạn truy cập vào máy chủ thông qua SSH và bật HTTP 2.0 bằng lệnh:

# plesk bin http2_pref enable

Sau khi bạn chạy lệnh này Plesk sẽ bật giao thức TLS với mật mã hiện đại và an toàn, webserber sẽ được xây dựng lại. Sau khi hoàn tất tất cả các website trên máy chủ sẽ  được hỗ trợ HTTP 2.0.

Để kiểm tra có thể dùng công cụ này https://tools.keycdn.com/http2-test

Bạn có thể tắt HTTP 2.0 đi nếu không còn nhu cầu nữa bằng lệnh

# plesk bin http2_pref disable

3. Hỗ trợ ALPN.

Để sử dụng được HTTP 2.0 trong Google Chrome, nginx webserver phải hỗ trợ ALPN (Application-Layer Protocol Negotiation). Thông tin chi tiết về ALPN ban tham khảo tại đây.

ALPN cho nginx có sẵn trong Plesk cho các hệ điều hành: CentOS 7, RedHat Enterprise Linux 7, Ubuntu 14.04, Ubuntu 16.04, và Debian 8.

Vì thế HTTP 2.0 do Plesk cung cấp có thể hoạt động tốt với các trình duyệt mới hiện tại.

4. Xử lý các lỗi phát sinh.

Nếu bạn gặp sự cố khi bật HTTP 2.0 cho một trang web hoặc kết quả kiểm tra chỉ hiển thị giao thức HTTP 1.x, hãy thử làm theo các bước bên dưới để khắc phục sự cố.

  1. Đảm bảo rằng SSL được bật cho trang web trong phần Hosting Setting của tên miền đang được cấu hình. HTTP 2.0 chỉ được hỗ trợ cho các trang web SSL, vì vậy các trang web không có SSL sẽ tiếp tục hoạt động với HTTP /1.x. Đó là một hạn chế của nginx webserver và các trình duyệt web.

  2. Kiểm tra xem nginx đã được bật chưa:

    # plesk sbin nginxmng -s
    

    Bật nó nếu cần:

    # plesk sbin nginxmng -e
    
  3. Kiểm tra xem gói OpenSSL có phiên bản 1.0.1 trở lên hay không:

    # rpm -qa | grep openssl
    openssl-1.0.1e-42.el6_7.4.x86_64.
    
  4. Kiểm tra xem không có mẫu cấu hình tùy chỉnh nào trong đó /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php. Xóa nó nếu có và tạo lại tệp cấu hình:

    # plesk sbin httpdmng --reconfigure-all
    

    Ngoài ra, nếu bạn không muốn xóa các cấu hình tùy chỉnh của mình, bạn có thể sửa đổi tệp /usr/local/psa/admin/conf/templates/custom/domain/nginxDomainVirtualHost.php như bên dưới.

    Tìm hàng tương tự như

    ($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') ?>;
    

    Và thay thế nó bằng hai hàng sau:

    ($OPT['default'] ? ' default_server' : '') . ($OPT['ssl'] ? ' ssl' : '') .
    ($OPT['ssl'] && $VAR->domain->physicalHosting->proxySettings['nginxHttp2'] ? ' http2' : '') ?>;
    

    Sau đó, chạy lệnh:

    # plesk bin http2_pref enable
    
  5. Trong trường hợp sự cố kết nối SSL với HTTP 2.0 sau khi bật, hãy đảm bảo rằng lệnh ssl_cipherstrong /etc/nginx/conf.d/ssl.confhoặc trong cấu hình tùy chỉnh nginxDomainVirtualHost.phpcó giá trị sau:

    ssl_ciphers EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20:EECDH+SHA256+AES128:EECDH+SHA384+AES256:EDH+SHA256+AES128:EDH+SHA256+AES256:EECDH+SHA1+AES128:EECDH+SHA1+AES256:EDH+SHA1+AES128:EDH+SHA1+AES256:EECDH+HIGH:EDH+HIGH:AESGCM+AES128:AESGCM+AES256:CHACHA20:SHA256+AES128:SHA256+AES256:SHA1+AES128:SHA1+AES256:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!KRB5:!aECDH:!EDH+3DES;
    
  6. Nếu trang web của bạn không hoạt động trong một số trình duyệt sau khi bật HTTP 2.0, điều này có thể là bạn không có mật mã và giao thức cần thiết để hỗ trợ HTTP 2.0. Sử dụng tiện ích sslmng của Plesk để thiết lập các giao thức có sẵn và danh sách mật mã TLS sau khi bạn đã bật HTTP 2.0.  Ví dụ: nếu bạn muốn sử dụng chính xác cùng một danh sách mật mã như Plesk, lệnh sẽ như sau:

    #plesk sbin sslmng --services=nginx --custom --ciphers="EECDH+AESGCM+AES128:EECDH+AESGCM+AES256:EECDH+CHACHA20:EDH+AESGCM+AES128:EDH+AESGCM+AES256:EDH+CHACHA20" --protocols="TLSv1 TLSv1.1 TLSv1.2"
    

    Cấu hình sẽ được lưu trữ trong /etc/nginx/conf.d/ssl.conf. Plesk khuyến nghị nên chỉnh sửa tệp này theo cách thủ công.

  7. Nếu không có bước nào ở trên hữu ích, hãy liên hệ với bộ phận hỗ trợ kỹ thuật của Plesk  hoặc có thể tạo bài viết trên trang diễn đàn của Plesk.

Chúc các bạn thành công.