一聚教程网:一个值得你收藏的教程网站

热门教程

Nginx使用HTTP/2与HTTPS跑分测试

时间:2022-06-30 18:22:26 编辑:袖梨 来源:一聚教程网

HTTP 2.0介绍

HTTP 2.0即超文本传输协议 2.0,是下一代HTTP协议。是由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis (httpbis)工作小组进行开发。是自1999年http1.1发布后的首个更新。HTTP 2.0在2013年8月进行首次合作共事性测试。在开放互联网上HTTP 2.0将只用于https://网址,而 http://网址将继续使用HTTP/1,目的是在开放互联网上增加使用加密技术,以提供强有力的保护去遏制主动攻击。DANE RFC6698允许域名管理员不通过第三方CA自行发行证书


还没有使用HTTPS的童鞋请先参考文章:Nginx强制https,HTTP 301重定向到HTTPS,其实nginx开启HTTP/2支持非常简单,您只需要将原本的listen 443;改成listen 443 ssl http2;即可支持HTTP2,别忘记重载nginx哦。
HTTP/2测试

开启HTTP/2后如何得知网站是否已经支持?Chrome/Firefox浏览器可以安装HTTP/2 and SPDY indicator这个扩展,若当网站支持HTTP/2那么会自动显示为蓝色,若是灰色则说明不支持,此外Chrome51 以后需要支持 ALPN,否则降级为HTTP/1.1
OpenSSL版本
ALPN需要OpenSSL 1.0.2的支持,目前OneinStack最新版已经支持OpenSSL 1.0.2,您可以输入nginx -V进行查看。

Nginx HTTPS优化


在V2上看到一位网友分享的配置规则,实测跑分有明显提高,可以直接拿过来使用,如下几条规则:

 代码如下 复制代码

ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #允许的协议
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; #加密算法(CloudFlare 推荐的加密套件组)
ssl_prefer_server_ciphers on; #优化 SSL 加密套件
ssl_session_timeout 10m; #客户端会话缓存时间
ssl_session_cache builtin:1000 shared:SSL:10m; #SSL 会话缓存类型和大小
ssl_buffer_size 1400; # 1400 bytes to fit in one MTU
add_header Strict-Transport-Security max-age=15768000;
ssl_stapling on;
ssl_stapling_verify on;

以下是小z博客的完整规则,有需要的可以参考:

 代码如下 复制代码

server {
listen 443 ssl http2;
ssl_certificate /data/ssl/xiaoz.me.crt;
ssl_certificate_key /data/ssl/xiaoz.me.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #允许的协议
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; #加密算法(CloudFlare 推荐的加密套件组)
ssl_prefer_server_ciphers on; #优化 SSL 加密套件
ssl_session_timeout 10m; #客户端会话缓存时间
ssl_session_cache builtin:1000 shared:SSL:10m; #SSL 会话缓存类型和大小
ssl_buffer_size 1400; # 1400 bytes to fit in one MTU
add_header Strict-Transport-Security max-age=15768000;
ssl_stapling on;
ssl_stapling_verify on;
 
server_name xiaoz.me www.xiaoz.me;
index index.html index.htm index.php;
include /usr/local/nginx/conf/rewrite/wordpress.conf;
root /data/wwwroot/xiaoz.me;
 
location ~ [^/].php(/|$) {
    #fastcgi_pass remote_php_ip:9000;
    fastcgi_pass unix:/dev/shm/php-cgi.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
    }
location ~ .*.(gif|jpg|jpeg|png|bmp|swf|flv|ico)$ {
    expires 30d;
    access_log off;
    }
location ~ .*.(js|css)?$ {
    expires 7d;
    access_log off;
    }
}
 
server
{
        listen 80;
        server_name xiaoz.me www.xiaoz.me;
        rewrite ^(.*) https://www.xiaoz.me$1 permanent;
}

HTTPS跑分测试

我们可以打开SSL LABS测试自己的网站HTTPS跑分,若您已经升级到OpenSSL 1.0.2且开启了HTTP/2的情况下跑分会有明显的提升。以下是小z博客对比截图:


未优化前()



升级OpenSSL 1.0.2与优化后()

总结


若您喜欢折腾可以考虑将OpenSSL升级到1.0.2,重要配置请自行备份。此外又拍云的CDN也已经支持HTTP/2了,若不想折腾的可以直接上又拍云CDN,前提是需要BA

原文来自 https://www.xiaoz.me/archives/7225

热门栏目