Thủ thật config Nginx SSL/TLS tối ưu độ trễ/TTFB

0
2455

Kể từ 30/6/2108, Hội đồng tiêu chuẩn bảo mật PCI yêu cầu dừng hỗ trợ SSL 3.0 và TLS 1.0

Đây là các chuẩn mã hoá đã cũ và không còn bảo mật. Ngoài ra, từ 7/2018 Google sẽ đánh dấu các trang sử dụng HTTP là “Không an toàn”. Trong vài năm qua, hơn 70% lưu lượng truy cập của Chrome và 81/100 trang web hàng đầu hiện đang sử dụng HTTPS.

TTFB: Time to first byte, là thuật ngữ chỉ khoảng thời gian mà máy chủ phản hồi lần đầu tiên khi client gửi request đến. Như vậy, chỉ số này càng thấp thì càng tốt.

Cách check:

curl -o /dev/null -w "Connect: %{time_connect} TTFB: %{time_starttransfer} Total time: %{time_total} \n" https://hoctapit.com/

Kết quả:

Connect: 0.082 TTFB: 0.969 Total time: 1.035 

Hãy xem các mẹo tối ưu Nginx HTTS cho TTFB tốt hơn và giảm độ trễ:

Bật HTTP/2

HTTP/2 được thêm vào nginx từ bản 1.9.5

Để bật HTTP/2 rất đơn giản, chỉ cần thêm vào:

listen 443 ssl http2;

Để check xem website đã bật HTTP/2 chưa chỉ cần vào trang này: https://http2.pro/

Lưu ý: trong 1 số trường hợp, các thiết bị cũ như điện thoại chạy OS cũ quá có thể không hỗ trợ HTTP/2

Bật SSL session cache

HTTPS cần có handshake giữa server/client. Có thể sử dụng ssl_session_cache để cache các thao tác này giúp cho việc truy cập nhanh hơn. Nó có thể chia sẻ cache giữa tất cả các worker process nginx. 1MB có thể chứa tới 4000 session. Thêm vào phần config certificate:

ssl_session_cache shared:SSL:1m; # holds approx 4000 sessions
ssl_session_timeout 1h; # 1 hour during which sessions can be re-used.

Tắt SSL session tickets

Tính năng này chưa được triển khai trong nginx, bạn có thể tắt nó đi:

ssl_session_tickets off;

Tắt TLS version 1.0

Như chúng ta đã thảo luận trong phần mở đầu, HTTPS và HTTP/2 là một bước tiến mới nhất, nhanh chóng và an toàn nhất. Vì vậy, TLS 1.0 sẽ bị vô hiệu hóa.

Nếu thấy có đoạn:

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Thì sửa thành:

ssl_protocols TLSv1.1 TLSv1.2;

Bật OCSP Stapling

ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /path/to/full_chain.pem;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 5s;

Giảm SSL Buffer size

Kích thước của bộ nhớ đệm được sử dụng để gửi dữ liệu qua HTTPS, mặc định là 16kb, tuy nhiên để giảm thiểu TTFB thì nên để giá trị nhỏ hơn:

ssl_buffer_size 4k;

Bật HTTP Strict Transport Security (HSTS)

HSTS sẽ giúp máy chủ gửi 1 header tới client để “tuyên bố” rằng, web của tao chỉ được sử dụng HTTPS. Bật cái này có thể giúp website tránh được tấn công hạ cấp, SSL stripping và cookie hijacking.

add_header Strict-Transport-Security "max-age=63072000; includeSubdomains; preload";

Nguồn: https://haydenjames.io/nginx-tuning-tips-tls-ssl-https-ttfb-latency/

LEAVE A REPLY

Please enter your comment!
Please enter your name here