Skip to main content

[Thủ thuật Linux] Chuyển HTTP/1 sang HTTP/2 để tăng tốc độ website trên Apache

HTTP/2 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.

Apache module mod_http2 cung cấp HTTP/2 hỗ trợ cho các webserver Apache. Module này tăng tốc độ tải trang và bảo mật cho trang web.

Lưu ý:

HTTP/2 tốn nhiều tài nguyên hơn, làm tăng mức tiêu thụ bộ nhớ của máy chủ

- Để sử dụng HTTP/2 website cần có SSL/TLS

Cách kiểm tra xem đã cài đặt HTTP/2 chưa

Để kiểm tra xem trang web của bạn đã được cài đặt phiên bản HTTP/2 hay chưa, thì bạn chỉ việc truy cập vào một trong hai trang web bên dưới và nhập địa chỉ wesite của mình vào, nhấn test để kiểm tra.

https://http2.pro và https://tools.keycdn.com/http2-test

Image

kiểm tra đã tồn tại http 2

Hướng dẫn cài đặt HTTP/2 trên Apache trên máy chủ CentOS

Bước 1: Kiểm tra server Apache

Trước tiên cần kiểm tra cấu hình máy chủ của bạn đã phù hợp để cài đặt HTTP/2 chưa. Đối với HTTP/2 sẽ yêu cầu từ Apache 2.4.

Ngoài ra module mod_httpd2 sẽ không tương thích với hệ điều hành Centos 6 – 32bit hoặc DSO PHP Handlers.

[root@host]# httpd -v
Server version: Apache/2.4.16 (Unix)
Server built: Dec 23 2015 11:28:39
Cpanel::Easy::Apache v3.32.6 rev9999

Bước 2: Cài đặt và cấu hình OpenSSL

2.1. Kiểm tra OpenSSL đã cài đặt chưa

# openssl version

OpenSSL tối thiểu từ phiên bản 1.0.2. Nếu chưa có hoặc cần update bạn làm theo các bước sau:

# cd /usr/local/src/

# wget https://www.openssl.org/source/openssl-1.1.1c.tar.gz

# tar -xf openssl-1.1.1c.tar.gz

# cd openssl-1.1.1c

#  ./config –prefix=/usr/local/ssl –openssldir=/usr/local/ssl shared zlib

# make

# make test

#make install

2.3. Sau đó cấu hình đường dẫn thư viện Openssl

# cd /etc/ld.so.conf.d/
# vi openssl-1.1.1c.conf

Thêm nội dung như sau và lưu lại

/usr/local/ssl/lib

Và chạy lệnh

# ldconfig -v

2.4. Cấu hình OpenSSL Binary

# mv /bin/openssl /bin/openssl.backup

# vi /etc/profile.d/openssl.sh

Và thêm nội dung như sau và lưu lại

OPENSSL_PATH=“/usr/local/ssl/bin”

export OPENSSL_PATH

PATH=$PATH:$OPENSSL_PATH

export PATH

2.5. Phân quyền cho file script

chmod +x /etc/profile.d/openssl.sh

2.6. Sau đó chạy lệnh để thực thi script

# source /etc/profile.d/openssl.sh

# echo $PATH

Sau đó chạy lệnh kiểm tra phía trên để kiểm tra nếu kiểm tra thấy phiên bản là 1.1.1c là thành công.

Sau khi đã cập nhật xong OpenSSL, build lại apache với tham số –enable-http2 –with-ssl=/usr/local/ssl

Sau khi build xong apache, bạn mở file httpd.conf ra và thêm đoạn sau vào:

<IfModule http2_module>
LogLevel http2:info
Protocols h2 h2c http/1.1
</IfModule>

Restart lại apache và thử kiểm tra.