Vncloud.vn Chào các bạn, như các bạn đã biết HTTP/2 là phiên bản ra sau của HTTP/1 do google phát triển dựa trên giao thức SPDY. Giao thức HTTP/1 tồn động vài vấn đề khi mà đã 15 năm phát triển vì thế HTTP/2 ra đời như một hệ quả tất yếu của Directadmin.
Hiện tại HTTP/2 đã hỗ trợ từ phiên bản nginx 1.9.5 trở lên vì thế trong post này kienthuclinux sẽ hướng dẫn bạn kích hoạt HTTP/2 trên web server dạng nginx và nginx reverse apache nhé (phiên bản mới nhất của DirectAdmin tính tới thời điểm mình post bài là 1.52.0 và phiên bản nginx nếu build trên DirectAdmin hiện tại là 1.13.5)
Để tích hợp module http_v2 vào nginx cần thư viện openssl phiên bản từ 1.0.2 trở lên, rất tiếc là phiên bản openssl ở phiên bản DirectAdmin 1.52.0 là version 1.0.1
[root@labDA ~]# openssl version OpenSSL 1.0.1e-fips 11 Feb 2013
và đây là từng bước thực hiện việc tích hợp HTTP/2 dành cho các bạn.
Bước 1: Cài thư viện openssl version 1.0.2
cd /usr/local/src/ wget -O /usr/local/src/openssl-1.0.2g.tar.gz https://www.openssl.org/source/openssl-1.0.2g.tar.gz tar -xvzf openssl-1.0.2g.tar.gz
Bước 2: Tạo thư mục và file clone cấu hình
cd /usr/local/directadmin/custombuild/ mkdir /usr/local/directadmin/custombuild/custom mkdir /usr/local/directadmin/custombuild/custom/nginx mkdir /usr/local/directadmin/custombuild/custom/nginx/conf cp /usr/local/directadmin/custombuild/configure/nginx/conf/nginx-vhosts.conf /usr/local/directadmin/custombuild/custom/nginx/conf/nginx-vhosts.conf
Bước 3: Sửa lại config của nginx để thực hiện compile lại openssl
vi /usr/local/directadmin/custombuild/configure/nginx_reverse/configure.nginx
./configure \ "--user=nginx" \ "--group=nginx" \ "--prefix=/usr" \ "--sbin-path=/usr/sbin" \ "--conf-path=/etc/nginx/nginx.conf" \ "--pid-path=/var/run/nginx.pid" \ "--http-log-path=/var/log/nginx/access_log" \ "--error-log-path=/var/log/nginx/error_log" \ "--with-ipv6" \ "--without-mail_imap_module" \ "--without-mail_smtp_module" \ "--with-http_ssl_module" \ "--with-http_realip_module" \ "--with-http_stub_status_module" \ "--with-http_gzip_static_module" \ "--with-http_dav_module" \ "--with-http_v2_module" \ "--with-openssl=/usr/local/src/openssl-1.0.2g" \ "--with-cc-opt='-D FD_SETSIZE=32768'"
lưu lại nhé.
Bước 4: Sửa lại config template của vhost
vi /usr/local/directadmin/custombuild/custom/nginx/conf/nginx-vhosts.conf
thêm http2 vào các đoạn sau:
listen |IP|:|PORT_443| ssl http2; listen 127.0.0.1:|PORT_443| ssl http2; listen [::1]:|PORT_443| ssl http2;
tương tự vậy khi tạo các template cho vhost
cd /usr/local/directadmin/data/templates dir custom exists ? mkdir custom cp /usr/local/directadmin/data/templates/nginx_server_secure.conf /usr/local/directadmin/data/templates/custom/nginx_server_secure.conf cp /usr/local/directadmin/data/templates/nginx_server_secure_sub.conf /usr/local/directadmin/data/templates/custom/nginx_server_secure_sub.conf
vi /usr/local/directadmin/data/templates/custom/nginx_server_secure.conf
listen |IP|:|PORT_443| ssl http2;
vi /usr/local/directadmin/data/templates/custom/nginx_server_secure_sub.conf
listen |IP|:|PORT_443| ssl http2;
Bước 5: Đưa vào task queue để thực hiện action rewrite nginx
echo "action=rewrite&value=nginx" >> /usr/local/directadmin/data/task.queue /usr/local/directadmin/dataskq d
Bước 6: thực hiện việc compile lại nginx
cd /usr/local/directadmin/custombuild ./build nginx_apache ./build rewrite_confs service nginx restart
Xong rồi đấy, bây giờ VPS (Server) của bạn đã có HTTP/2, bạn có thể kiểm tra trang web của mình được hỗ trợ HTTP/2 hay chưa ở link sau nhé. Cám ơn các bạn đã theo dõi.
Nguồn tham khảo: kienthuclinux.com