0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Centos6 Tengine开启http2.0传输协议

电子设计 来源:电子设计 作者:电子设计 2020-12-10 22:02 次阅读

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.gz

tar -zxvf openssl-1.0.2t.tar.gz

cd openssl-1.0.2t

./config shared zlib
#默认安装找/usr/local/ssl
make && make install 
#先备份之前的老版本
mv /usr/bin/openssl /usr/bin/openssl.old
mv /usr/include/openssl /usr/include/openssl.old
#建立软连接
ln -s /usr/local/ssl/bin/openssl /usr/bin/openssl
ln -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/src

wget http://tengine.taobao.org/download/tengine-2.2.2.tar.gz

tar tengine-2.2.2.tar.gz

cd tengine-2.2.2
#这里需要修改一下tengine的代码,因为我们是手动编译的openssl,依赖库路径和原来系统安装的不太一样,所以需要手动指定
vim auto/lib/openssl/conf
#在大概32行配置原来配置如下:
CORE_INC
CORE_DEP
CORE_LIB
CORE_LIB
#修改成如下,保存退出
CORE_INC
CORE_DEP
CORE_LIB
CORE_LIB

#先安装一些依赖(我是升级,其实不需要安装依赖了,如果是首次安装tenginx,就需要安装依赖)
yum -y install zlib zlib-devel openssl openssl-devel pcre pcre-devel   gcc gcc-c++ autoconf automake jemalloc jemalloc-devel
#开始编译tenginx
cd /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/ssl
make
##注意,如果是第一安装tegninx,只需要只需执行以下命令
make install
#但是我是安装过了,所以需要备份老的tenginx
cp -af /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx_bak
cp -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的传输协议

作者博客 青叶的博客

审核编辑 黄昊宇
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Linux
    +关注

    关注

    87

    文章

    11225

    浏览量

    208910
  • OpenSSL
    +关注

    关注

    0

    文章

    20

    浏览量

    8666
  • nginx
    +关注

    关注

    0

    文章

    143

    浏览量

    12163
  • http2.0
    +关注

    关注

    0

    文章

    3

    浏览量

    2114
  • Tengine
    +关注

    关注

    1

    文章

    47

    浏览量

    2838
收藏 人收藏

    评论

    相关推荐

    socket 与 HTTP 协议的关系

    在计算机网络中,Socket和HTTP协议是两个非常重要的概念,它们在数据传输和网络通信中扮演着关键的角色。 1. Socket的概念 Socket是一种通信机制,它允许两个程序(一个客户端和一个
    的头像 发表于 11-12 14:12 141次阅读

    socket与HTTP协议的比较

    在计算机网络中,Socket和HTTP协议都是非常重要的概念。它们在数据传输和通信中扮演着关键角色,但它们的应用场景和工作原理有所不同。 1. 定义与基本概念 1.1 Socket Socket
    的头像 发表于 11-01 16:14 173次阅读

    低功耗4G模组HTTP网络协议应用

    ​大家好,今天我们来学习合宙Air780E模组LuatOS开发4G通信中HTTP网络协议的应用,实现模组和服务器之间数据的传输。 一、HTTP概述 1.1 简介
    的头像 发表于 11-01 07:23 131次阅读
    低功耗4G模组<b class='flag-5'>HTTP</b>网络<b class='flag-5'>协议</b>应用

    4G 模组 HTTP 网络协议应用 白嫖版!

    今天我们来白嫖的是Air780E模组LuatOS开发4G通信中HTTP网络协议的应用,实现模组和服务器之间数据的传输,详细介绍硬件环境、软件环境、功能验证等…
    的头像 发表于 10-30 14:22 687次阅读
    4G 模组 <b class='flag-5'>HTTP</b> 网络<b class='flag-5'>协议</b>应用 白嫖版!

    CentOS中使用tcpdump抓包

    CentOS中使用tcpdump抓包
    的头像 发表于 10-28 14:48 175次阅读

    HTTP协议下的海外网络畅游:安全与效率的双重保障

    在全球化日益加深的今天,HTTP协议作为互联网上最为广泛使用的通信协议之一,为海外网络畅游提供了重要的技术支持。在HTTP协议下,海外网络畅
    的头像 发表于 09-24 08:08 163次阅读

    常用CentOS命令总结

    CentOS(Community ENTerprise Operating System)是基于Red Hat Enterprise Linux(RHEL)的自由和开源的企业级操作系统,旨在提供一个
    的头像 发表于 08-07 15:35 263次阅读

    鉴源实验室·HTTP协议网络安全攻击

    互联网的迅猛发展,HTTP(HyperText Transfer Protocol,超文本传输协议)已经成为网页传输的基础协议。它在客户端(
    的头像 发表于 07-30 13:48 280次阅读
    鉴源实验室·<b class='flag-5'>HTTP</b><b class='flag-5'>协议</b>网络安全攻击

    CAN总线的传输速率由什么决定

    的快慢。本文将详细分析CAN总线传输速率的决定因素。 CAN协议标准 CAN总线有多种协议标准,如CAN 2.0A、CAN 2.0B和CAN
    的头像 发表于 06-16 10:17 1193次阅读

    IOT(物联网)的七大通信协议Http协议

    一、什么是http协议?嵌入式HTTP协议是一种轻量级的通信协议,专为嵌入式系统设计,用于实现设备与互联网之间的通信。
    的头像 发表于 05-24 08:11 2429次阅读
    IOT(物联网)的七大通信<b class='flag-5'>协议</b>之<b class='flag-5'>Http</b><b class='flag-5'>协议</b>

    网络传输协议有几种?

    协议)、TCP(传输控制协议)、UDP(用户数据报协议)、ICMP(互联网控制报文协议)等。这些协议
    的头像 发表于 04-02 16:04 1281次阅读

    什么是CAN2.0协议

    CAN2.0协议是控制器局域网络(ControllerAreaNetwork,CAN)的一种版本,也被称为传统CAN协议,由德国博世BOSCH公司开发,并已成为国际上广泛应用于汽车电子、工业自动化
    的头像 发表于 03-29 08:19 1255次阅读
    什么是CAN<b class='flag-5'>2.0</b><b class='flag-5'>协议</b>?

    mqtt协议http协议区别

    的最大优点在于,用极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。 HTTP协议(HyperText Transfer Protocol)是因特网上应用最为广泛的一种网络传输协议
    的头像 发表于 01-19 15:56 6799次阅读

    关于TCP、HTTP的知识科普

    要说http就绕不开tcp,TCP协议对应于传输层,而HTTP协议对应于应用层,从本质上来说,二者没有可比性。但是,
    的头像 发表于 12-21 09:31 1019次阅读
    关于TCP、<b class='flag-5'>HTTP</b>的知识科普