0%

在Nginx上为Hexo启用HTTP/2

Nginx启用HTTP/2

http/2作为一个新的通信协议,好处自然是大大的,大家可以google下,这里我们在Nginx中启用下,也好给我们的Https加速。

禁用旧版加密

我们首先禁用旧版加密,如果不禁用的话,会造成虽然启用了但是没法正常访问的问题。

Ubuntu上,只要修改/etc/nginx/nginx.conf文件,在http一节里找到或新加入这样一行(如果是软件包自带的配置文件的话,可以加在ssl_prefer_server_ciphers一行后面):

/etc/nginx/nginx.conf
1
ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

配置HTTP/2

之后我们只要修改站点的配置文件,在listen监听的HTTPS端口443后面加上ssl http2就行了。监听80端口的并不能启用HTTP/2,请放弃。

比如本网站的:

/etc/nginx/conf.d/www.example.com.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
...
server {
listen 443 default_server ssl http2;
listen [::]:443 default_server ssl http2;
server_name www.example.com;

root /var/www/hexo;
index index.html index.htm;

ssl on;
ssl_certificate /path/to/example.com.crt;
ssl_certificate_key /path/to/example.com.key;

location / {
try_files $uri $uri/ =404;
}
}
...

测试下是否有问题:

1
sudo nginx -t

如果没有问题的话就重启吧

1
sudo systemctl restart nginx

测试

大家可以使用myssl的HTTP2检测进行检测。

也可以打开开发者工具里的网络,可以看到“版本”一项显示“HTTP/2.0”。