fbpx
close

Hướng dẫn Nâng cấp HTTP/2 trên Nginx Webserver của DirectAdmin

Tác giả: TinoHost Ngày cập nhật: 05/03/2021 Chuyên mục:
Disclosure
Website Wiki.tino.org được cung cấp bởi Tino Group. Truy cập và sử dụng website đồng nghĩa với việc bạn đồng ý với các điều khoản và điều kiện trong chính sách bảo mật - điều khoản sử dụng nội dung. Wiki.tino.org có thể thay đổi điều khoản sử dụng bất cứ lúc nào. Việc bạn tiếp tục sử dụng Wiki.tino.org sau khi thay đổi có nghĩa là bạn chấp nhận những thay đổi đó.
Why Trust Us
Các bài viết với hàm lượng tri thức cao tại wiki.tino.org được tạo ra bởi các chuyên viên Marketing vững chuyên môn và được kiểm duyệt nghiêm túc theo chính sách biên tập bởi đội ngũ biên tập viên dày dặn kinh nghiệm. Mọi nỗ lực của chúng tôi đều hướng đến mong muốn mang đến cho cộng đồng nguồn thông tin chất lượng, chính xác, khách quan, đồng thời tuân thủ các tiêu chuẩn cao nhất trong báo cáo và xuất bản.

DirectAdmin là phần mềm quản trị Hosting chuyên nghiệp hiện đang được sử dụng bởi nhiều khách hàng. 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

Trước khi bắt đầu chúng ta cùng tìm hiểu sơ lược về HTTP/2 và lợi ích khi nâng cấp.

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.

Khung thiết kế của HTTP/2

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“.

Chi tiết về HTTP/2 xin mời xem tại đây:

Ư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
http1-vs-http2

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

Trong bài này TinoHost sẽ làm ví dụ trên trang https://test.TinoHost.vn

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

Hướng dẫn Nâng cấp HTTP/2 trên Nginx Webserver của DirectAdmin 1
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

nano /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: bấm Ctrl + O

Thoát khỏi soạn thảo: bấm Ctrl + X

Sửa file nginx_server_secure.conf

bằng lệnh:

nano /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: bấm Ctrl + O

Thoát khỏi soạn thảo: bấm Ctrl + X

Sửa file nginx_server_secure_sub.conf

bằng lệnh:

nano /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ấm Ctrl + O

Thoát khỏi soạn thảo: bấm Ctrl + X

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:

nano /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ấm Ctrl + O

Thoát khỏi soạn thảo: bấm Ctrl + X

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

Hướng dẫn Nâng cấp HTTP/2 trên Nginx Webserver của DirectAdmin 2
HTTP/2 supported!

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

Chia sẻ một chút thông tin về bạn. Những thông tin này có thể được công khai.

Xem thêm bài viết

Bài viết liên quan