chaihongjun.me

网站启用http2配置说明

网站启用http2配置说明

服务器运行环境lnmp,要想网站运行在http/2.0下,需要nginx>=1.9.5,openssl>=1.0.2,至于其他说明不再赘述。本服务器当前Nginx版本为1.12.2,而centos6(64位)自带的openssl版本为1.0.1,这个和网上很多其他人遇到的情况是一样的,所以要想启用必须升级openssl,具体操作过程如下:

1.下载openssl

首先去官网(https://www.openssl.org/source/)下载最新版本,当前最新是1.1.0g,并将压缩包下载并解压到lnmp的源码目录/root/lnmp/src

2.配置安装新版openssl

#进入openssl-1.1.0g源码包
# ./config --prefix=/usr/local/openssl -fPIC shared zlib-dynamic
# make -j ${THREAD} && make install

3.更新openssl软连接

mv /usr/bin/openssl /usr/bin/openssl.bak
mv /usr/include/openssl /usr/include/openssl.bak
ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
ln -s /usr/local/openssl/include/openssl /usr/include/openssl
echo “/usr/local/openssl/lib” >> /etc/ld.so.conf
# 更新动态链接库
ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/lib64/libssl.so.1.1
ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/lib64/libcrypto.so.1.1

以上就完成了openssl的更新,查询openssl 版本:

# openssl version
OpenSSL 1.1.0g  2 Nov 2017

4.接着重新编译Nginx,将openssl编译到nginx模块里,具体可以参考之前写的平滑升级文章

# ./configure ${之前的参数} --with-http_v2_module --with-http_ssl_module --with-openssl=/root/lnmp/src/openssl-1.1.0g

nginx要想启用http/2.0,必须有http_v2_module,http_ssl_module这两个模块,因此编译的时候与openssl一同编译进nginx模块里。

5.检测方式

一种是可以依靠Chrome的插件HTTP/2 and SPDY indicator,当页面支持启用了http2,则会显示蓝色闪电,鼠标指向这个蓝色闪电会显示“HTTP/2-enable(h2)”,另外一个方式则是通过chrome的控制台,通过network选项卡,查看资源的协议(如果没有显示protocol,可以右键勾选),如果显示h2,则表示文件启用了http/2.0

知识共享许可协议本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。作者:柴宏俊»