Proxy Kiến Thức Linux Thủ Thuật

Cài đặt Nginx từ source với HTTP/2

nginx http2

1. Tích hợp OpenSSL vào Nginx

Đầu tiên, Chúng ta cần tải về source mới nhất của Nginx tại: Nginx Download và OpenSSL Source.

– Congdonglinux.com sử dụng Nginx dòng Stable 1.12.x
– Đối với OpenSSL, có thể sử dụng phiên bản 1.0.2x hoặc dòng Stable 1.1.0x
– Các phiên bản đã test thành công: Nginx 1.12.1 + OpenSSL 1.1.0f, Nginx 1.12.2 + OpenSSL 1.1.0g

1.1. Chuẩn bị – Cài đặt các gói cần thiết

Ở bước này, chúng ta sẽ cài đặt các gói tin cần thiết cho quá trình biên dịch mã nguồn của Nginx

# nginx -V
nginx version: nginx/1.12.1
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-18) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled

Đối Với Centos:

$ yum install epel-release gcc-c++ pcre-devel zlib-devel supervisor -y

Đối Với Ubuntu:
$ apt-get install apt-utils autoconf automake build-essential \
git libcurl4-openssl-dev libgeoip-dev liblmdb-dev \
libpcre++-dev libtool libxml2-dev libyajl-dev \
pkgconf wget zlib1g-dev  libssl-dev \
supervisor

Tải Source về:
$ cd /usr/local/src
$ wget http://nginx.org/download/nginx-1.12.2.tar.gz && tar -xzvf nginx-1.12.2.tar.gz
$ wget https://www.openssl.org/source/openssl-1.1.0g.tar.gz && tar -xzvf openssl-1.1.0g.tar.gz

1.2. Biên dịch Nginx
Tiến hành biên dịch Nginx với câu lệnh như sau:

$ cd //usr/local/src/nginx-1.12.2
$ ./configure –prefix=/webserver/ \
–with-compat \
–with-http_ssl_module \
–with-http_realip_module \
–with-http_gunzip_module \
–with-http_gzip_static_module \
–with-http_stub_status_module \
–with-http_auth_request_module \
–with-threads \
–with-stream \
–with-http_v2_module

trong đó:
–with-http_v2_module :  là tham số để bật tính năng http/2

Kết quả hiển thị như dưới là thành công:

Configuration summary
  + using threads
  + using system PCRE library
  + using OpenSSL library: /usr/local/src/openssl-1.1.0g
  + using system zlib library

  nginx path prefix: "/webserver/ "
  nginx binary file: "/webserver/sbin/nginx"
  nginx modules path: "/usr/lib64/nginx/modules"
  nginx configuration prefix: "/webserver/"
  nginx configuration file: "/webserver/nginx.conf"
  nginx pid file: "/var/run/nginx.pid"
  nginx error log file: "/var/log/nginx/error.log"
  nginx http access log file: "/var/log/nginx/access.log"
  nginx http client request body temporary files: "/var/cache/nginx/client_temp"
  nginx http proxy temporary files: "/var/cache/nginx/proxy_temp"
  nginx http fastcgi temporary files: "/var/cache/nginx/fastcgi_temp"
  nginx http uwsgi temporary files: "/var/cache/nginx/uwsgi_temp"
  nginx http scgi temporary files: "/var/cache/nginx/scgi_temp"

– Chạy lệnh phía dưới để tiến hành compile Nginx.

$ make
$ make install

Đợi tầm 3-5 phút để tiến trình thành công là bạn có thể sử dụng bộ Nginx đã được biên dịch thủ công để làm Webserver.

1.3. Quản Lý Nginx Với Supervisor

$ mkdir -p /var/log/{supervisor,nginx}  /var/cache/nginx

$ touch /var/cache/nginx/client_temp

$ vim /etc/supervisor/supervisor.conf

[program:nginx]
directory = /webserver
command=/webserver/sbin/nginx -c /webserver/conf/nginx.conf  -g ‘daemon off;’
pidfile = /webserver/nginx.pid
autostart=true
autorestart=true
stderr_logfile=/var/log/supervisor/nginx.error.log
stdout_logfile=/var/log/supervisor/nginx.out.log

$ supervisorctl reread

$ supervisorctl  update

Truy cập website để kiểm tra xem chúng ta đã cài đặt thành công chưa.

Image


2. Cấu hình SSL HTTP/2 trong Nginx Conf

Webserver Nginx trên hệ thống của bạn đã sẵn sàng thiết lập giao thức HTTP/2 giữa Server và Browser. Bạn cần kích hoạt giao thức HTTP2 kèm SSL trong cấu hình Nginx của mỗi site.

Bạn sửa cấu hình Nginx trong block server {…} như sau (chỉnh sửa đối với từng website trong hệ thống).

….

server {
listen 443 ssl http2;

…..

}

Bên cạnh đó, bạn nên cấu hình nâng cao SSL như hướng dẫn cài đặt chứng chỉ SSL hoặc Let’s Encrypt

3. Kiểm tra

Để kiểm tra, các bạn sử dụng công cụ Developer Tools của trình duyệt hoặc kiểm tra qua website.

Kiểm tra trực tiếp các kết nối trình duyệt tới website với công cụ Developer Tools F12 (trình duyệt nào cũng có). Như bạn đã thấy, HocVPS đã dùng HTTP/2, thời gian load lần đầu homepage chỉ là 2.33s.

H2 Protocol

Lưu ý: Một số phần mềm Antivirus chặn HTTP/2 Protocol nên cần kiểm tra cả ở máy tính khác và check cả Firefox và Chrome.

  • Với Chrome, nếu không thấy tab Protocol, bạn hãy nhấn chuột phải ở menu để kích hoạt.
  • Với Firefox, các bạn check tab Header trong Network sẽ thấy Version: HTTP/2.0

Bên cạnh đó, bạn có thể kiếm tra qua website HTTP2.pro. Kết quả tích hợp HTTP/2 kèm ALPN là ok.

Http2Pro

Hi vọng với bài viết hướng dẫn này, các bạn có thể kích hoạt kết nối giao thức HTTP/2 cho website của mình. Nếu có điều gì thắc mắc, hãy để lại comment bên dưới nhé.

 

 

 

Đăng ký liền tay Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !

Add Comment

Click here to post a comment

Đăng ký liền tay
Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !