Hướng dẫn bật HTTP/2 trên Nginx Webserver của DirectAdmin.

  • Monday 07/03/2022

DirectAdmin là phần mềm quản trị Hosting chuyên nghiệp hiện đang được sử dụng khá phổ biến. Mặc định DirectAdmin sử dụng giao thức HTTP/1.1 trong cấu hình cài đặt (Custombuild 2.0).

Hướng dẫn này áp dụng cho trường hợp sử dụng 2 server là Apache và Nginx, trong đó Apache là Application server và Nginx là Proxy. Nếu cấu hình DirectAdmin của bạn là Nginx chạy độc lập thì cần thay thế file :

/usr/local/directadmin/custombuild/configure/nginx_reverse/configure.nginx

Bằng file

/usr/local/directadmin/custombuild/configure/nginx/configure.nginx

I. HTTP/2 là gì?

HTTP/2 là giao thức mới được phát triển để thay thế HTTP/1.x – hiện đang là mặc định cài đặt trên tất cả các webserver. HTTP/2 là phiên bản hoàn toàn mới không phải bản chỉnh sửa của HTTP/1.x. Nó nhanh hơn, đơn giản hơn và mạnh hơn HTTP/1.x.

HTTP/2 có bộ khung nhị phân hoàn toàn mới và theo đó không áp dụng ngược trở lại cho HTTP/1.x. Tuy nhiên  HTTP/2 vẫn sử dụng các khái niệm và ngữ nghĩa mấu chốt của giao thức cũ mà chỉ thay đổi các quy định khuôn dạng dữ liệu truyền trên giao thức ngoài ra bổ sung thêm khái niệm “quyền ưu tiên” và “server push“.

Quý khách có thể tham khảo thêm chi tiết HTTP/2 ở link sau :

– Ưu điểm của HTTP/2 :

Tăng hiệu suất vận hành của giao thức thông qua Giảm độ trễ khi phản hồi tới người dùng cuối (Clients) và Sử dụng tài nguyên mạng của máy chủ (Server Push).

http1-vs-http2

II. Hướng dẫn nâng cấp HTTP/2 trên Nginx Webserver :

Bước 1: Kiểm tra trạng thái của HTTP/2 :

Để kiểm tra xem server đã được nâng cấp HTTP/2 hay chưa chúng ta sử dụng công cụ trực tuyến https://http2.pro

No HTTP/2 support

Nếu kết quả hiện ra như hình trên thì trang của bạn chưa hỗ trợ HTTP/2, bây giờ chúng ta sang bước kế tiếp.

Bước 2: Tải thư viện OpenSSL 1.0.2

HTTP/2 bắt đầu được hỗ trợ trên 1.0.2, mà thư viện cài đặt của DirectAdmin phổ biến trên phiên bản 1.50 là 1.0.1e.

Lần lượt thực hiện ba lệnh sau:

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.gzwget -O /usr/local/src/openssl-1.0.2g.tar.gz https://www.openssl.org/source/openssl-1.0.2g.tar.gz

Bước 3: Tạo cấu hình riêng cho Nginx

Mục đích của bước này là tạo ra bộ file cấu hình riêng của bạn, không nên sửa trực tiếp vào file mặc định của DirectAdmin.

Tạo thư mục lưu cấu hình riêng

mkdir -p /usr/local/directadmin/custombuild/custom/nginx/conf

mkdir -p /usr/local/directadmin/data/templates/custom/

Tham số -p có nghĩa là tạo thư mục theo đường dẫn, việc này sẽ rút ngắn quá trình tạo thư mục

Sao chép file cấu hình Nginx

Sao chép 3 file cấu hình của Nginx là vào thư mục custom vừa tạo

  • nginx-vhosts.conf
  • nginx_server_secure.conf
  • nginx_server_secure_sub.conf

Thực hiện lần lượt lệnh copy file như sau:

cp /usr/local/directadmin/custombuild/configure/nginx/conf/nginx-vhosts.conf /usr/local/directadmin/custombuild/custom/nginx/conf/nginx-vhosts.conf
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

Sửa file nginx-vhosts.conf

bằng lệnh

vi /usr/local/directadmin/custombuild/custom/nginx/conf/nginx-vhosts.conf

Tìm dòng

# HTTPS server
server {
listen |IP|:|PORT_443| ssl|SPACE_HTTP2|;
listen 127.0.0.1:|PORT_443| ssl|SPACE_HTTP2|;
listen [::1]:|PORT_443| ssl|SPACE_HTTP2|;

Đổi đoạn ssl|SPACE_HTTP2| thành ssl http2

Kết quả sẽ như sau:

server {
listen |IP|:|PORT_443| ssl http2;
listen 127.0.0.1:|PORT_443| ssl http2;
listen [::1]:|PORT_443| ssl http2;

Lưu lại sửa đổi.

Sửa file nginx_server_secure.conf

bằng lệnh:

vi /usr/local/directadmin/data/templates/custom/nginx_server_secure.conf

Tìm dòng:

listen |IP|:|PORT_443| ssl;

Sửa thành:

listen |IP|:|PORT_443| ssl http2;

Lưu lại sửa đổi.

Sửa file nginx_server_secure_sub.conf

bằng lệnh:

vi /usr/local/directadmin/data/templates/custom/nginx_server_secure_sub.conf

Tìm dòng:

listen |IP|:|PORT_443| ssl;

Sửa thành:

listen |IP|:|PORT_443| ssl http2;

Lưu lại sửa đổi.

Bước 4: Tạo cấu hình biên dịch lại Nginx

Sửa file configure.nginx

Trước khi sửa file để đảm bảo an toàn cần backup, thực hiện các lệnh như sau:

cd /usr/local/directadmin/custombuild/configure/nginx_reverse/
tar -czf configure.nginx.default.tar.gz configure.nginx

Sau khi backup thì sửa file bằng lệnh:

vi /usr/local/directadmin/custombuild/configure/nginx_reverse/configure.nginx

Tìm đến đoạn quy định http_v2_module như sau:

“–with-http_v2_module” \
“–with-cc-opt=’-D FD_SETSIZE=32768′”
Thêm vào giữa 2 dòng trên đoạn đường dẫn chưa mã nguồn OpenSSL 1.0.2 đã tải ở trên:

“–with-openssl=/usr/local/src/openssl-1.0.2g” \

Kết quả trông như sau:

“–with-http_v2_module” \
“–with-openssl=/usr/local/src/openssl-1.0.2g” \
“–with-cc-opt=’-D FD_SETSIZE=32768′”

Lưu lại sửa đổi.

Bước 5: Thực hiện Rebuild lại Nginx

Ghi vào Task queue

echo “action=rewrite&value=nginx” >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq d

Chạy Update để DiectAdmin build lại cấu hình Nginx

Thực hiện lần lượt các lệnh sau:

cd /usr/local/directadmin/custombuild
./build nginx_apache
./build rewrite_confs
service nginx restart

Quá trình cài đặt mất vài phút, đến khi Nginx khởi động lại thành công thì hãy kiểm tra lại bằng công cụ https://http2.pro

Nếu kết quả hiện ra như trên hình thì đã nâng cấp thành công HTTP/2

Xem thêm các hướng dẫn khác về Directadmin tại đây

P.A Việt Nam cung cấp đa dạng các cấu hình Máy Chủ Ảo và Máy Chủ Riêng :
Cloud Server
Cloud Server Pro
Máy Chủ Riêng

Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-tuc-chuong-trinh-khuyen-mai-ten-mien-hosting.html