Tổng quan Directadmin

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.

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.

Leave a Reply

Your email address will not be published. Required fields are marked *