一. 为网站配置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重新编译。
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,配置成功。
还没有评论,来说两句吧...