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
    +关注

    关注

    88

    文章

    11824

    浏览量

    219610
  • OpenSSL
    +关注

    关注

    0

    文章

    21

    浏览量

    9304
  • nginx
    +关注

    关注

    0

    文章

    196

    浏览量

    13224
  • http2.0
    +关注

    关注

    0

    文章

    3

    浏览量

    2353
  • Tengine
    +关注

    关注

    1

    文章

    47

    浏览量

    3276
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何在S32K146中使用CAN2.0B协议的示例项目

    hi, 我们正在项目中使用s32k146,希望在我们的板子上使用CAN2.0B协议,但无法配置设置。因此,请提供一个CAN2.0B协议的示例项目。
    发表于 04-17 08:31

    如何基于CANoe实现HTTP通信

    超文本传输协议HTTP,Hypertext Transfer Protocol)是一种用于在客户端与服务器之间传输数据的应用层协议,起初主
    的头像 发表于 01-28 15:01 317次阅读
    如何基于CANoe实现<b class='flag-5'>HTTP</b>通信

    瑞芯微(EASY EAI)RV1126B http/https

    1.HTTP/HTTPS简介HTTP(全称:HyperTextTransferProtocol,超文本传输协议)是互联网上应用最为广泛的一种网络协议
    的头像 发表于 01-26 16:53 2666次阅读
    瑞芯微(EASY EAI)RV1126B <b class='flag-5'>http</b>/https

    工业领域为什么会用到HTTP协议

    工业领域使用HTTP协议主要源于其 通用性、易用性、扩展性 以及与现代工业系统集成需求的契合,尽管工业环境对实时性、可靠性的要求较高,但HTTP在特定场景下仍能发挥关键作用。以下是具体原因分析
    的头像 发表于 12-27 09:38 284次阅读

    HTTP物联网网关是什么?有什么功能?

    HTTP物联网网关是一种硬件或软件设备,位于物联网设备与云端服务之间,以HTTP协议为核心通信方式,负责数据的采集、处理、传输和管理。它作为物联网架构中的关键组件,解决了不同设备间
    的头像 发表于 12-24 11:33 554次阅读
    <b class='flag-5'>HTTP</b>物联网网关是什么?有什么功能?

    HTTP通信网关是什么?有什么功能?

    HTTP通信网关是连接不同网络或协议的关键设备/服务器,在HTTP通信中扮演着协议转换、安全加固、性能优化等核心角色,其本质是 实现不同协议
    的头像 发表于 12-23 11:14 657次阅读

    4G工业网关实现PLC数据采集与HTTP协议上报

    HTTP(超文本传输协议)是互联网最基础的应用层协议,在工业物联网(IIoT)中也被广泛用于设备上云、数据上报与系统集成通信,其标准化、跨平台和易实现的特点,使其成为工业网关与云平台之
    的头像 发表于 12-23 10:22 469次阅读
    4G工业网关实现PLC数据采集与<b class='flag-5'>HTTP</b><b class='flag-5'>协议</b>上报

    使用 HTTP 协议能否实现 IAP 功能?

    使用 HTTP 协议,能否实现 IAP 功能?
    发表于 12-23 06:35

    使用HTTP实现IAP的方法

    使用 HTTP 协议进行固件升级没有使用 TFTP 常见,但是在需要通过 Internet 进行远程编程时,这种解决方案就显得极为有用。这时,需要使用 TCP 传输协议来实现
    发表于 12-16 06:18

    对比分析电能质量在线监测装置支持的断点续传文件传输协议的优缺点

    为了清晰区分各断点续传文件传输协议的适配性,下面从 安全性、断点能力、传输效率、配置难度、兼容性 等核心维度,对电能质量在线监测装置支持的 FTP、SFTP、FTPS、HTTP/HTT
    的头像 发表于 12-05 17:49 3746次阅读
    对比分析电能质量在线监测装置支持的断点续传文件<b class='flag-5'>传输</b><b class='flag-5'>协议</b>的优缺点

    Modbus协议HTTP协议,实现JSON格式对接MES等系统平台

    不用联外网不用写程序,通过智能网关IGT-DSER简单配置参数,即可实现HTTP协议对接各种系统平台,支持POST/GET/PUT等多种方法,可同时作为HTTP协议的客户端和服务端。
    发表于 10-27 10:33

    RT-Thread+STM32F429IGT6+LWIP(2.1.2)开启IPV6功能,无法获取有效IPV6地址怎么处理?

    我已经用正点原子的阿波罗开发板移植了PHY芯片(YT8512C,RMII接口),完成了TCP/IP网络功能,可以自动获取IPV4地址以及ping功能;现在我需要增加IPV6协议,按照官方给的编程手册
    发表于 09-19 06:01

    HTTP协议在工业领域会用到吗

    HTTP协议在工业领域会用到,并且在工业互联网、设备管理、数据交互等多个方面发挥着重要作用,以下为你详细介绍: 工业互联网场景 设备接入与管理 原理:在工业互联网平台中,各类工业设备(如传感器
    的头像 发表于 06-03 09:17 799次阅读

    泰芯半导体开启AIOT高效传输新纪元

    今天,Wi-Fi/蓝牙/星闪音视频SOC芯片TXW82x及Wi-Fi Halow TXW8301S正式亮相!开启高效传输的新纪元!
    的头像 发表于 05-29 14:30 1980次阅读

    基于RK3576开发板的http/https通讯

    HTTP(超文本传输协议)和HTTPS(安全超文本传输协议)是互联网中广泛应用的协议,用于客户端
    的头像 发表于 05-10 11:24 2025次阅读
    基于RK3576开发板的<b class='flag-5'>http</b>/https通讯