HTTP/3 是超文本传输协议(HTTP)的最新版本,它在万维网上传输网页和其他内容方面发挥着关键作用。与依赖传输控制协议(TCP)的先前版本不同,HTTP/3 使用一种名为 QUIC 的新传输层协议。负责标准化互联网协议的互联网工程任务组(IETF)已将 HTTP/3 定义为增强 Web 性能和安全性的重大修订。
-
HTTP/3 和 QUIC 加密具有显着优势,包括由于减少了握手延迟和多路复用流而缩短了页面加载时间。内置加密等增强的安全功能可针对常见威胁提供强大的保护。此外,改进的连接可靠性和高效的资源利用率可确保即使在具有挑战性的网络条件下也能实现最佳性能。
-
1、更快的页面加载时间:通过利用 QUIC 更快的连接建立速度,您可以绕过传统的 TCP 握手过程。这样可以大大缩短设置阶段,这对于减少初始加载时间至关重要。与之前的版本不同,QUIC 的连接建立发生在一个往返时间 (RTT) 内,从而大大降低了延迟。
-
2、增强的安全功能:QUIC 中的传输层安全性无缝且强大。它采用前向保密来确保即使长期密钥被泄露,过去的会话数据仍然安全。所使用的加密算法是最先进的,可提供强大的加密保证,并不断更新以应对新出现的威胁。
-
3、提高连接可靠性:HTTP/3 和 QUIC 通过最小化延迟和优化数据包传输显着增强了连接可靠性,确保在各种网络条件下更稳定、更高效的数据传输。
-
4、高效资源利用:HTTP/3 和 QUIC 通过最小化冗余数据传输和增强拥塞控制机制来优化资源利用率。这些协议采用多路复用技术通过单个连接同时处理多个请求,从而避免了困扰 HTTP/2 的队头阻塞。
NGINX开启HTTP/3配置
server {
listen 443 quic reuseport;
listen 443 ssl;
server_name www.kaifashuo.com;
ssl_certificate /var/www/html/fullchain.pem;
ssl_certificate_key /var/www/html/privkey.pem;
ssl_trusted_certificate /var/www/html/chain.pem;
ssl_protocols TLSv1.3;
#ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
# ssl_dhparam /var/www/html/dhparam.pem;
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off;
#ssl_stapling on;
#ssl_stapling_verify on;
resolver 8.8.8.8 8.8.4.4 valid=300s;
resolver_timeout 10s;
# 启用 HTTP/2 和 HTTP/3
http2 on;
http3 on;
# QUIC 相关配置
quic_retry on;
ssl_early_data on;
quic_gso on;
# openssl genpkey -algorithm X25519 -out /etc/nginx/ssl/quic_host.key 生成quic_host.key
quic_host_key /var/www/html/quic_host.key;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
# 设置 Alt-Svc 头,告诉客户端支持 HTTP/3
add_header Alt-Svc 'h3=":443"; ma=86400';
root /var/www/html;
index index.php;
client_max_body_size 100M;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_pass unix:/var/run/php/php8.4-fpm.sock;
include fastcgi_params;
fastcgi_intercept_errors on;
}
}
还没有任何评论,你来说两句吧