随着 HTTPS/2 的普及,越来越多网站开启了 HTTPS/2 ,上个月也把自己的网站升级上了 HTTPS/2 。

准备工作

  1. 要开启 HTTP/2 需要 Nginx 版本在 1.10.0 以上且需要 openssl 版本在 1.0.2 以上编译。
  2. HTTP/2 只支持开启了 https 的网站

服务器安装的版本刚好都符合要求,所以就直接设置好了 ssl 证书。

配置 HTTP/2

配置 Nginx 开启 HTTP/2 特别简单,只要在 Nginx 配置文件中找到你要开启 HTTP/2 的域名 server 模块,然后将 listen 443 ssl; 改成 listen 443 ssl http2; 即可。

要优化nginx配置可以用 https://mozilla.github.io/server-side-tls/ssl-config-generator/ 这个生成的配置。

server {

listen 443 ssl http2;
server_name domain.com;

ssl_certificate /path/to/public.crt;
ssl_certificate_key /path/to/private.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