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

    文章

    11627

    浏览量

    217893
  • OpenSSL
    +关注

    关注

    0

    文章

    21

    浏览量

    9214
  • nginx
    +关注

    关注

    0

    文章

    180

    浏览量

    12961
  • http2.0
    +关注

    关注

    0

    文章

    3

    浏览量

    2330
  • Tengine
    +关注

    关注

    1

    文章

    47

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

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

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

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

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

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

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

    HTTP和HTTPS的关键区别

    HTTP(HyperText Transfer Protocol) 是一种无状态的通信协议,通常用于在客户端(例如浏览器)和服务器之间传输超文本(如 HTML 页面)。但这仅仅是一个单向通信
    的头像 发表于 03-25 15:34 1561次阅读
    <b class='flag-5'>HTTP</b>和HTTPS的关键区别

    TCP协议的常见应用场景

    在现代通信网络中,TCP协议因其可靠性和稳定性而被广泛应用于各种场景。 1. 网页浏览 1.1 HTTP和HTTPS HTTP(超文本传输协议
    的头像 发表于 01-22 09:55 3294次阅读

    MPU数据传输协议详解

    在现代电子系统中,微控制器(MPU)扮演着核心角色,负责处理各种任务和数据。为了实现这些功能,MPU需要与其他设备进行数据交换。数据传输协议就是规定这些数据交换如何进行的一套规则。 MPU数据传输
    的头像 发表于 01-08 09:37 1412次阅读

    升级centos7内核版本

    " : " $2}' /etc/grub2.cfg 0 : CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)1 : CentOS Linux
    的头像 发表于 01-02 10:41 998次阅读

    HTTP 协议对于SEO优化的影响

    搜索引擎优化(SEO)是提高网站在搜索引擎中的可见性和排名的过程。HTTP协议作为互联网通信的基础,对SEO有着深远的影响。 1. HTTP状态码 HTTP状态码是服务器响应客户端请求
    的头像 发表于 12-30 09:29 975次阅读

    如何使用 cURL 测试 HTTP 协议

    cURL是一个强大的命令行工具,用于传输数据,支持多种协议,包括HTTP、HTTPS、FTP等。使用cURL测试HTTP协议可以帮助你理解
    的头像 发表于 12-30 09:26 2077次阅读

    HTTP 1.1 和 HTTP 2.0 的区别

    HTTP(超文本传输协议)是互联网上应用最为广泛的协议之一,用于在客户端和服务器之间传输数据。随着技术的发展,
    的头像 发表于 12-30 09:25 1781次阅读

    如何使用 HTTP 协议进行数据传输

    在互联网时代,数据传输是信息交换的基础。HTTP协议作为最常用的数据传输协议之一,支撑着全球数十亿用户的数据交互。
    的头像 发表于 12-30 09:24 2140次阅读

    如何实现 HTTP 协议的安全性

    HTTP(超文本传输协议)是互联网上应用最为广泛的协议之一,用于从服务器传输超文本到本地浏览器的传输
    的头像 发表于 12-30 09:22 1482次阅读

    HTTP 协议的工作原理

    HTTP协议的工作原理 1. HTTP协议概述 HTTP是一个应用层协议,它定义了客户端与服务器
    的头像 发表于 12-30 09:21 1587次阅读

    HTTP 和 HTTPS 的区别

    在互联网时代,数据传输安全变得越来越重要。HTTP 和 HTTPS 是两种广泛使用的网络协议,它们在数据传输方面扮演着关键角色。尽管它们的名字相似,但它们在安全性和用途上有着显著的区别
    的头像 发表于 12-30 09:19 2320次阅读

    HTTP 协议的基本概念

    HTTP(HyperText Transfer Protocol,超文本传输协议)是一种用于分布式、协作式、超媒体信息系统的网络协议HTTP
    的头像 发表于 12-29 15:12 2224次阅读