吴忠躺衫网络科技有限公司

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

    文章

    11345

    瀏覽量

    210402
  • OpenSSL
    +關注

    關注

    0

    文章

    21

    瀏覽量

    8744
  • nginx
    +關注

    關注

    0

    文章

    154

    瀏覽量

    12235
  • http2.0
    +關注

    關注

    0

    文章

    3

    瀏覽量

    2161
  • Tengine
    +關注

    關注

    1

    文章

    47

    瀏覽量

    2876
收藏 人收藏

    評論

    相關推薦

    如何使用 cURL 測試 HTTP 協議

    cURL是一個強大的命令行工具,用于傳輸數據,支持多種協議,包括HTTP、HTTPS、FTP等。使用cURL測試HTTP協議可以幫助你理解
    的頭像 發表于 12-30 09:26 ?252次閱讀

    HTTP 1.1 和 HTTP 2.0 的區別

    HTTP(超文本傳輸協議)是互聯網上應用最為廣泛的協議之一,用于在客戶端和服務器之間傳輸數據。隨著技術的發展,
    的頭像 發表于 12-30 09:25 ?307次閱讀

    如何使用 HTTP 協議進行數據傳輸

    在互聯網時代,數據傳輸是信息交換的基礎。HTTP協議作為最常用的數據傳輸協議之一,支撐著全球數十億用戶的數據交互。
    的頭像 發表于 12-30 09:24 ?455次閱讀

    如何實現 HTTP 協議的安全性

    HTTP(超文本傳輸協議)是互聯網上應用最為廣泛的協議之一,用于從服務器傳輸超文本到本地瀏覽器的傳輸
    的頭像 發表于 12-30 09:22 ?315次閱讀

    HTTP 協議的工作原理

    HTTP協議的工作原理 1. HTTP協議概述 HTTP是一個應用層協議,它定義了客戶端與服務器
    的頭像 發表于 12-30 09:21 ?335次閱讀

    HTTP 協議的基本概念

    HTTP(HyperText Transfer Protocol,超文本傳輸協議)是一種用于分布式、協作式、超媒體信息系統的網絡協議HTTP
    的頭像 發表于 12-29 15:12 ?503次閱讀

    socket 與 HTTP 協議的關系

    在計算機網絡中,Socket和HTTP協議是兩個非常重要的概念,它們在數據傳輸和網絡通信中扮演著關鍵的角色。 1. Socket的概念 Socket是一種通信機制,它允許兩個程序(一個客戶端和一個
    的頭像 發表于 11-12 14:12 ?321次閱讀

    socket與HTTP協議的比較

    在計算機網絡中,Socket和HTTP協議都是非常重要的概念。它們在數據傳輸和通信中扮演著關鍵角色,但它們的應用場景和工作原理有所不同。 1. 定義與基本概念 1.1 Socket Socket
    的頭像 發表于 11-01 16:14 ?415次閱讀

    低功耗4G模組HTTP網絡協議應用

    ?大家好,今天我們來學習合宙Air780E模組LuatOS開發4G通信中HTTP網絡協議的應用,實現模組和服務器之間數據的傳輸。 一、HTTP概述 1.1 簡介
    的頭像 發表于 11-01 07:23 ?287次閱讀
    低功耗4G模組<b class='flag-5'>HTTP</b>網絡<b class='flag-5'>協議</b>應用

    4G 模組 HTTP 網絡協議應用 白嫖版!

    今天我們來白嫖的是Air780E模組LuatOS開發4G通信中HTTP網絡協議的應用,實現模組和服務器之間數據的傳輸,詳細介紹硬件環境、軟件環境、功能驗證等…
    的頭像 發表于 10-30 14:22 ?889次閱讀
    4G 模組 <b class='flag-5'>HTTP</b> 網絡<b class='flag-5'>協議</b>應用 白嫖版!

    CentOS中使用tcpdump抓包

    CentOS中使用tcpdump抓包
    的頭像 發表于 10-28 14:48 ?323次閱讀

    HTTP協議下的海外網絡暢游:安全與效率的雙重保障

    在全球化日益加深的今天,HTTP協議作為互聯網上最為廣泛使用的通信協議之一,為海外網絡暢游提供了重要的技術支持。在HTTP協議下,海外網絡暢
    的頭像 發表于 09-24 08:08 ?231次閱讀

    鑒源實驗室·HTTP協議網絡安全攻擊

    互聯網的迅猛發展,HTTP(HyperText Transfer Protocol,超文本傳輸協議)已經成為網頁傳輸的基礎協議。它在客戶端(
    的頭像 發表于 07-30 13:48 ?361次閱讀
    鑒源實驗室·<b class='flag-5'>HTTP</b><b class='flag-5'>協議</b>網絡安全攻擊

    IOT(物聯網)的七大通信協議Http協議

    一、什么是http協議?嵌入式HTTP協議是一種輕量級的通信協議,專為嵌入式系統設計,用于實現設備與互聯網之間的通信。
    的頭像 發表于 05-24 08:11 ?2624次閱讀
    IOT(物聯網)的七大通信<b class='flag-5'>協議</b>之<b class='flag-5'>Http</b><b class='flag-5'>協議</b>

    網絡傳輸協議有幾種?

    協議)、TCP(傳輸控制協議)、UDP(用戶數據報協議)、ICMP(互聯網控制報文協議)等。這些協議
    的頭像 發表于 04-02 16:04 ?1734次閱讀
    百家乐投注方法多不多| 百家乐椅子| 百家乐是怎么赌法| 波克棋牌官方免费下载| 百家乐官网电子路单破解| 迪威百家乐官网赌场娱乐网规则| 名人百家乐的玩法技巧和规则| 娱乐城开户送| 马牌娱乐城| 伯爵百家乐官网娱乐平台| 百家乐官网最新投注方法| 百家乐桌布小| 88娱乐城开户| 博彩百家乐官网画谜网| 致胜百家乐的玩法技巧和规则| 宁南县| 24是吉还是凶| 大发888游戏平台官方| 滁州市| 免费百家乐官网计划软件| 大发888娱乐城 df888ylc3403| 澳门百家乐官网技术| 网上百家乐有人赢过吗| 博发娱乐| 百家乐官网网站那个诚信好| 大发888鸿博博彩| 百家乐官网棋牌官网| 百家乐路子| 英吉沙县| 网上百家乐网址| 百家乐博彩,| 免费百家乐官网追号| 棋牌游戏平台开发| 金字塔百家乐官网的玩法技巧和规则 | 百家乐官网里面的奥妙| 视频百家乐代理| 新野县| 百家乐视频台球游戏| 真人斗地主| 哈尔滨百家乐赌场| 会昌县|