Hướng dẫn thiết lập Nginx vs HTTP/2 Support trên Debian 9

0

Chúng tôi sẽ hướng dẫn bạn cách thiết lập Nginx với HTTP/2 Support trên Debian 9. HTTP / 2 là một phiên bản chính của giao thức mạng HTTP và cung cấp nhiều lợi ích. Bật HTTP / 2 trên Nginx chạy trên máy chủ Debian 9, là nhiệm vụ khá dễ dàng nếu bạn thực hiện theo hướng dẫn dưới đây một cách cẩn thận. Bắt đầu nào!

HTTP / 2 là gì?

HTTP / 2 là phiên bản chính của giao thức mạng HTTP. Nó bắt nguồn từ giao thức SPDY thử nghiệm được phát triển bởi Google. Mục tiêu chính của HTTP / 2 là giảm độ trễ, giảm thiểu chi phí giao thức và thêm hỗ trợ cho yêu cầu ưu tiên. Điều này làm cho các ứng dụng web tải nhanh hơn nhiều.

Cú pháp mức cao như mã trạng thái, phương thức, trường tiêu đề, URI, v.v. giống như phiên bản cũ của HTTP ngoại trừ có sự khác biệt về cách dữ liệu được đóng khung và vận chuyển giữa máy khách và máy chủ.

Hỗ trợ HTTP / 2 đã được giới thiệu trong phiên bản Nginx 1.9.5 và nó có sẵn trong tất cả các phiên bản mới hơn. Nếu bạn đang sử dụng Debian 9 như một hệ điều hành, bạn không nên lo lắng liệu bạn có thể sử dụng HTTP / 2 với Nginx hay không. Phiên bản Nginx được bao gồm trong kho lưu trữ Debian 9 mặc định cao hơn 1.9.5 để hỗ trợ HTTP / 2 sẽ được bao gồm.

Để kiểm tra phiên bản Nginx được cài đặt trên Debian VPS của bạn , hãy kết nối với máy chủ của bạn qua SSH và chạy lệnh sau:

nginx -v

Đầu ra sẽ tương tự như dưới đây:

# nginx -v
nginx version: nginx/1.10.3

Nếu bạn nhận được một cái gì đó như sau:

# nginx -v
-bash: /usr/sbin/nginx: No such file or directory

Nó có nghĩa là Nginx không được cài đặt trên VPS Linux của bạn và bạn cần cài đặt nó trước. Chạy các lệnh sau để cài đặt Nginx:

apt-get update
apt-get install nginx

Khi quá trình cài đặt hoàn tất, hãy chạy lệnh trên để xác minh rằng Nginx đã được cài đặt và nó hỗ trợ HTTP / 2.

Thiết lập Nginx với HTTP / 2 support trên Debian 9

HTTP / 2 không yêu cầu mã hóa. Tuy nhiên, hiện tại không có trình duyệt nào hỗ trợ HTTP / 2 không được mã hóa, do đó bạn cần có chứng chỉ SSL hợp lệ được cấp cho miền của mình trước khi tiếp tục các bước khác trong hướng dẫn này.

Để kích hoạt HTTP / 2 trong Nginx, mở khối máy chủ Nginx mặc định bằng cách sử dụng trình soạn thảo văn bản mà bạn chọn.

nano /etc/nginx/sites-available/default

Sau đó, thêm các dòng sau:

server {
listen 443 ssl http2 default_server;
server_name domain.com www.domain.com;
root /var/www/html;
index index.html;

location / {
try_files $uri $uri/ =404;
}

ssl_certificate /etc/nginx/ssl/domain.com.crt;
ssl_certificate_key /etc/nginx/ssl/domain.com.key;
}

server {
listen 80;
server_name domain.com www.domain.com;
return 301 https://$server_name$request_uri;
}

Sử dụng tên miền của bạn server_name, vị trí dữ liệu trang web của bạn rootvà đường dẫn đến chứng chỉ SSL và khóa cá nhân của bạn cho ssl_certificatevà ssl_certificate_key.

Khi bạn đã hoàn tất, hãy lưu tệp và đóng tệp. Kiểm tra xem có lỗi cú pháp trong cấu hình Nginx hay không bằng cách sử dụng lệnh dưới đây:

nginx -t

Nếu mọi thứ đều ổn với cấu hình, đầu ra phải giống với cấu hình bên dưới:

# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nếu không, các lỗi sẽ được liệt kê trong đầu ra để bạn dễ dàng tìm ra vấn đề là gì.

Một khi bạn chắc chắn không có vấn đề với cấu hình trong Nginx, bạn có thể khởi động lại dịch vụ bằng cách sử dụng lệnh sau đây:

systemctl restart nginx.service

Một điều mà chúng tôi có thể cải thiện ở đây là bảo mật trao đổi chính. Nginx theo mặc định sử dụng khóa Diffie-Hellman 1028 bit và chúng tôi có thể tạo ra một khóa mới, an toàn hơn. Để tạo khóa Diffie-Hellman mới, hãy chạy lệnh sau:

openssl dhparam -out /etc/nginx/ssl/dhparam.pem 2048

Quá trình này sẽ mất vài phút để hoàn thành. Khi khóa được tạo, mở khối máy chủ Nginx mặc định và thêm dòng sau vào bên dưới ssl_certificate_key:

ssl_dhparam /etc/nginx/ssl/dhparam.pem;

Sau đó, khởi động lại Nginx để các thay đổi có hiệu lực.

PS. Nếu bạn thích bài viết này về cách thiết lập Nginx với hỗ trợ HTTP / 2 trên Debian 9, hãy chia sẻ nó với bạn bè của bạn trên các mạng xã hội bằng cách sử dụng các nút ở bên trái hoặc đơn giản là để lại câu trả lời dưới đây. Cảm ơn.

Leave a Reply

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