1.前言 最近在优化网站的访问速度,为网站开启http2协议,这个协议有什么优点呢?如下:
http2是下一代的传输协议,以后都会普遍用它,是一个趋势。 http2有多路复用特性,意思是访问一个域名下面的资源,多个请求共用一条tcp链路,所以比http1.1要快得多。 2.准备工作 需要重新编译openssl1.0.2以上版本,因为我们系统的版本都是centos6的,不支持直接yum更新openssl,如果是centos7,直接yum update openssl -y 即可更新 编译完成openssl后,需要重新使用openssl的库文件重新编译tenginx,我们使用的tengine版本是tengine/2.2.2。 3.操作步骤 安装 openssl-1.0.2t #进入/usr/local/src,一般软件包都放这里cd /usr/local/src#下载安装包wget https://www.openssl.org/source/openssl-1.0.2t.tar.gztar -zxvf openssl-1.0.2t.tar.gzcd openssl-1.0.2t./config shared zlib#默认安装找/usr/local/sslmake && make install #先备份之前的老版本mv /usr/bin/openssl /usr/bin/openssl.oldmv /usr/include/openssl /usr/include/openssl.old#建立软连接ln -s /usr/local/ssl/bin/openssl /usr/bin/opensslln -s /usr/local/ssl/include/openssl /usr/include/openssl#把动态库加入系统配置路径echo /usr/local/ssl/lib >> /etc/ld.so.conf#查看动态库是否生效ldconfig -p#检查openssl版本openssl version 安装tenginx cd /usr/local/srcwget http://tengine.taobao.org/download/tengine-2.2.2.tar.gztar tengine-2.2.2.tar.gzcd tengine-2.2.2#这里需要修改一下tengine的代码,因为我们是手动编译的openssl,依赖库路径和原来系统安装的不太一样,所以需要手动指定vim auto/lib/openssl/conf#在大概32行配置原来配置如下:core_inccore_depcore_libcore_lib#修改成如下,保存退出core_inccore_depcore_libcore_lib#先安装一些依赖(我是升级,其实不需要安装依赖了,如果是首次安装tenginx,就需要安装依赖)yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel gcc gcc-c++ autoconf automake jemalloc jemalloc-devel#开始编译tenginxcd /usr/local/src/tengine-2.2.2 && ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-http_concat_module --with-jemalloc --with-http_v2_module --with-http_secure_link_module --with-openssl=/usr/local/sslmake##注意,如果是第一安装tegninx,只需要只需执行以下命令make install#但是我是安装过了,所以需要备份老的tenginxcp -af /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bakcp -af /usr/local/nginx/sbin/dso_tool /usr/local/nginx/sbin/dso_tool_bak#拷贝编译好的tenginx到对应目录cp /usr/local/src/tengine-2.2.2/objs/nginx /usr/local/nginx/sbin/cp /usr/local/src/tengine-2.2.2/objs/dso_tool /usr/local/nginx/sbin/#然后重启tenginx,就算编译安装完成啦 tenginx http2配置 #配置http2很简单,如下:server { #http 不支持http2的传输协议,所以80端口不变 listen 80 # listen在原https配置文件基础上添加http2 listen 443 ssl http2; server_name www.oneq.work; .....}#另外附上一份完整的支持http2的tenginx配置upstream server_backend { server ip:80 weight=10; server ip:80 weight=10; keepalive 800;#下面检测端口的配置需要tenginx的才有效,不是tenginx需要安装额外的插件或者直接注释即可 check interval=5000 rise=3 fall=3 timeout=5000 type=tcp;}server { listen 80; listen 443 ssl http2; server_name xxx.xxx.xxx; req_status server; ssl_certificate /usr/local/nginx/certs/xxx.xxx.xxx.crt; ssl_certificate_key /usr/local/nginx/certs/xxx.xxx.xxx.key; ssl_session_timeout 5m; ssl_protocols tlsv1.1 tlsv1.2 tlsv1; ssl_ciphers high:!anull:!md5; ssl_prefer_server_ciphers on; proxy_set_header host $host; proxy_set_header x-real-ip $remote_addr; proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; proxy_pass_header user-agent; proxy_set_header x-forwarded-proto $scheme; proxy_set_header connection ; proxy_http_version 1.1; access_log logs/access.log main;location / { proxy_pass http://server_backend/; access_log logs/server_backend.log main; }error_page 404 /404.html; location = /404.html { root html; }error_page 500 502 503 504 /50x.html; location = /50x.html { root html; }} 4.效果展示
5.总结 1.第一次安装tenginx和升级步骤有所区别,需要注意下
2.http不支持http2的传输协议,所以80端口还是使用http1.1的协议,https使用http2的传输协议
作者博客 青叶的博客
数字示波器和模拟示波器的区别
一文看懂电感器的电感量与哪些因素有关
随着VR技术的成熟,越来越多的工地开始使用vr安全体验馆
曲面电视3000r和4000r有何差异 浅谈曲面电视的优缺点
技嘉大雕512K AORUS Gen5 12000 SSD评测分析
Centos6 Tengine开启http2.0传输协议
浅谈cURL 和wget相似之处及优势对比
中软国际成为华为云MetaStudio 数字内容协同设计计划创始成员
人工智能2.0小试身手 给应用带来“质”的改变
氧传感器概念及工作原理
台积电被告,华为和苹果跟着躺枪!
半导体技术驱动下的智能医疗设备新浪潮
AI智能教育,从小培养孩子兴趣
深度解析华为CCA汽车域控制器
Masimo无线脉搏血氧仪可用于监测在家中的新型冠状病毒患者
科创板将再迎重量级选手,功率“大哥”华润微8年后回归A股!
微软宣布加入一个为保护Linux免于诉讼而设立的开源专利组织
农用有机硅怎么用_农用有机硅的使用方法
各国通信制造商在5G领域各有所长未来的5G设备供应不会一家独大
贴片头创建吸嘴数据库