个人博客:https://xiaofengsir.com/,关注更新文章
一. 为网站配置http2.0协议
说明:在为网站添加SSL证书并配置HTTP2(一)中,已经安装好了SSL证书,并且配置了301重定向。现在可以开始配置http2.0协议了,关于什么是http2.0协议,以及和http1.1的区别这里不多说了,自行百度吧。
1. 查看网站协议
打开浏览器,将审查元素打开,点击Network选项卡,将Protocol调出来,查看传输协议。目前显示的为http/1.1,传输协议。
2. 查看Nginx版本,查看OpenSSL版本
目前显示的版本是nginx/1.10.2,OpenSSL 1.0.1e-fips,因为之前安装Nginx时,使用的时系统默认的源,然而Centos7自带的Nginx版本并不够新,想要支持使用http2.0协议,OpenSS必须升级到2.0版本以上才可以。因此要对Nginx重新编译。
<br />
3. 编译安装Nginx和openssl
说明:编译Nginx步骤较多,如果出现问题,评论区留言吧。
1.安装编译过程中需要使用的工具
yum install wget curl perl gcc pcre-devel zlib-devel make -y
代码说明:
wget: 常用的命令可以自动下载文件的工具,支持通过HTTP、HTTPS、FTP等常见的TCP/IP协议下载,并可以使用HTTP代理。
curl: 利用URL语法在命令行方式下工作的开源文件传输工具。和wget类似但有不同。
perl: 为服务器安装perl环境。
gcc: 为服务器安装gcc环境。
pcre-devel: perl的一个库,用来处理正则表达式。
zlib-devel: 为服务器安装zlib库。
make: linux中常用的编译安装命令。
2.下载Nginx源和openssl源
//下载openssl新版的源和Nginx新版源
wget https://www.openssl.org/source/openssl-1.0.2l.tar.gz http://nginx.org/download/nginx-1.11.10.tar.gz
//解压两个压缩包
tar zxvf nginx-1.11.10.tar.gz
tar zxvf openssl-1.0.2l.tar.gz
//重命名nginx和openssl
mv nginx-1.11.10/ nginx
mv openssl-1.0.2l/ openssl
3.编译nginx
1)首先卸载原先版本的额nginx
//卸载已安装的nginx版本
yum remove nginx -y
2)配置编译nginx
//进入nginx和openssl所在目录。
cd ~
//将nginx和openssl移动到/usr/local/src文件夹
mv nginx/ openssl/ /usr/local/src/
//进入/etc/local/src/nginx目录下
cd /usr/local/src/nginx
//配置nginx
./configure --prefix=/etc/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --pid-path=/var/run/nginx.pid --lock-path=/var/run/nginx.lock --http-client-body-temp-path=/var/cache/nginx/client_temp --http-proxy-temp-path=/var/cache/nginx/proxy_temp --http-fastcgi-temp-path=/var/cache/nginx/fastcgi_temp --http-uwsgi-temp-path=/var/cache/nginx/uwsgi_temp --http-scgi-temp-path=/var/cache/nginx/scgi_temp --user=nginx --group=nginx --with-http_ssl_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module --with-http_stub_status_module --with-http_auth_request_module --with-threads --with-stream --with-stream_ssl_module --with-http_slice_module --with-mail --with-mail_ssl_module --with-file-aio --with-http_v2_module --with-stream_realip_module --with-openssl=/usr/local/src/openssl
//使用make命令编译一下,时间较长
make
//编译完成后执行下make insatll
make install
//为新编译的nginx添加用户,创建配置目录
useradd nginx && mkdir /etc/nginx/conf.d
//创建nginx缓存目录,并设置一些权限
mkdir /var/cache/nginx && chown nginx:root /var/cache/nginx
//删除用不着的文件
rm -rf /usr/local/src/nginx && rm -rf /usr/local/src/openssl && rm -rf /var/cache/yum
3)继续配置nginx,并启动它
//配置nginx服务文件
vim /usr/lib/systemd/system/nginx.service
//为nginx.service添加配置代码
[Unit]
Description=nginx - high performance web server
Documentation=http://nginx.org/en/docs/
After=network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
[Service]
Type=forking
PIDFile=/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t -c /etc/nginx/nginx.conf
ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
[Install]
WantedBy=multi-user.target
//启动下nginx,再设置开机启动
systemctl start nginx
systemctl enable nginx
systemctl status nginx
4)编辑nginx.conf文件
//进入nginx目录
cd /etc/nginx/
//为nginx.conf添加代码
vim nginx.conf
//在nginx.conf中的gzip on代码下面一行添加如下代码
include /etc/nginx/conf.d/*.conf;
//重启nginx
systemctl restart nginx
4.配置http2.0协议
//进入网站的nginx配置文件所在目录
cd /etc/nginx/
//编辑ssl.域名.conf文件
vim ssl.域名.conf
//在第一行listen配置项中添加 ssl http2
server {
listen 443 ssl http2;
.....见第一篇中的.conf配置文件
//重启nginx
systemctl restart nginx
5. 测试
至此,http2.0协议配置完成,打开浏览器查看传输协议。
可以看到,传输协议为h2,配置成功。