1.前言
最近在優(yōu)化網(wǎng)站的訪問速度,為網(wǎng)站開啟http2協(xié)議,這個協(xié)議有什么優(yōu)點呢?如下:
- http2是下一代的傳輸協(xié)議,以后都會普遍用它,是一個趨勢。
- http2有多路復(fù)用特性,意思是訪問一個域名下面的資源,多個請求共用一條TCP鏈路,所以比http1.1要快得多。
2.準(zhǔn)備工作
- 需要重新編譯openssl1.0.2以上版本,因為我們系統(tǒng)的版本都是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
#把動態(tài)庫加入系統(tǒng)配置路徑
echo "/usr/local/ssl/lib" >> /etc/ld.so.conf
#查看動態(tài)庫是否生效
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,依賴庫路徑和原來系統(tǒng)安裝的不太一樣,所以需要手動指定
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,只需要只需執(zhí)行以下命令
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到對應(yīng)目錄
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的傳輸協(xié)議,所以80端口不變
listen 80
# listen在原h(huán)ttps配置文件基礎(chǔ)上添加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.總結(jié)
1.第一次安裝tenginx和升級步驟有所區(qū)別,需要注意下
2.http不支持http2的傳輸協(xié)議,所以80端口還是使用http1.1的協(xié)議,https使用http2的傳輸協(xié)議
作者博客 青葉的博客
審核編輯 黃昊宇
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
-
Linux
+關(guān)注
關(guān)注
87文章
11207瀏覽量
208721 -
OpenSSL
+關(guān)注
關(guān)注
0文章
20瀏覽量
8656 -
nginx
+關(guān)注
關(guān)注
0文章
142瀏覽量
12154 -
http2.0
+關(guān)注
關(guān)注
0文章
3瀏覽量
2106 -
Tengine
+關(guān)注
關(guān)注
1文章
47瀏覽量
2831
發(fā)布評論請先 登錄
相關(guān)推薦
socket與HTTP協(xié)議的比較
在計算機網(wǎng)絡(luò)中,Socket和HTTP協(xié)議都是非常重要的概念。它們在數(shù)據(jù)傳輸和通信中扮演著關(guān)鍵角色,但它們的應(yīng)用場景和工作原理有所不同。 1. 定義與基本概念 1.1 Socket Socket
低功耗4G模組HTTP網(wǎng)絡(luò)協(xié)議應(yīng)用
?大家好,今天我們來學(xué)習(xí)合宙Air780E模組LuatOS開發(fā)4G通信中HTTP網(wǎng)絡(luò)協(xié)議的應(yīng)用,實現(xiàn)模組和服務(wù)器之間數(shù)據(jù)的傳輸。 一、HTTP概述 1.1 簡介
4G 模組 HTTP 網(wǎng)絡(luò)協(xié)議應(yīng)用 白嫖版!
今天我們來白嫖的是Air780E模組LuatOS開發(fā)4G通信中HTTP網(wǎng)絡(luò)協(xié)議的應(yīng)用,實現(xiàn)模組和服務(wù)器之間數(shù)據(jù)的傳輸,詳細介紹硬件環(huán)境、軟件環(huán)境、功能驗證等…
HTTP協(xié)議下的海外網(wǎng)絡(luò)暢游:安全與效率的雙重保障
在全球化日益加深的今天,HTTP協(xié)議作為互聯(lián)網(wǎng)上最為廣泛使用的通信協(xié)議之一,為海外網(wǎng)絡(luò)暢游提供了重要的技術(shù)支持。在HTTP協(xié)議下,海外網(wǎng)絡(luò)暢
常用CentOS命令總結(jié)
CentOS(Community ENTerprise Operating System)是基于Red Hat Enterprise Linux(RHEL)的自由和開源的企業(yè)級操作系統(tǒng),旨在提供一個
鑒源實驗室·HTTP協(xié)議網(wǎng)絡(luò)安全攻擊
互聯(lián)網(wǎng)的迅猛發(fā)展,HTTP(HyperText Transfer Protocol,超文本傳輸協(xié)議)已經(jīng)成為網(wǎng)頁傳輸的基礎(chǔ)協(xié)議。它在客戶端(
IOT(物聯(lián)網(wǎng))的七大通信協(xié)議之Http協(xié)議
一、什么是http協(xié)議?嵌入式HTTP協(xié)議是一種輕量級的通信協(xié)議,專為嵌入式系統(tǒng)設(shè)計,用于實現(xiàn)設(shè)備與互聯(lián)網(wǎng)之間的通信。
軟件公司看過來,這款網(wǎng)關(guān)支持MQTT\UDP\HTTP協(xié)議,腳本輕松對接各大云平臺。并且支持上百種PLC協(xié)議
plcHTTP協(xié)議
藍蜂物聯(lián)網(wǎng)
發(fā)布于 :2024年04月03日 17:50:30
網(wǎng)絡(luò)傳輸協(xié)議有幾種?
協(xié)議)、TCP(傳輸控制協(xié)議)、UDP(用戶數(shù)據(jù)報協(xié)議)、ICMP(互聯(lián)網(wǎng)控制報文協(xié)議)等。這些協(xié)議
什么是CAN2.0協(xié)議?
CAN2.0協(xié)議是控制器局域網(wǎng)絡(luò)(ControllerAreaNetwork,CAN)的一種版本,也被稱為傳統(tǒng)CAN協(xié)議,由德國博世BOSCH公司開發(fā),并已成為國際上廣泛應(yīng)用于汽車電子、工業(yè)自動化
mqtt協(xié)議和http協(xié)議區(qū)別
的最大優(yōu)點在于,用極少的代碼和有限的帶寬,為連接遠程設(shè)備提供實時可靠的消息服務(wù)。 HTTP協(xié)議(HyperText Transfer Protocol)是因特網(wǎng)上應(yīng)用最為廣泛的一種網(wǎng)絡(luò)傳輸協(xié)議
關(guān)于TCP、HTTP的知識科普
要說http就繞不開tcp,TCP協(xié)議對應(yīng)于傳輸層,而HTTP協(xié)議對應(yīng)于應(yīng)用層,從本質(zhì)上來說,二者沒有可比性。但是,
怎么下載centos鏡像文件
CentOS 6 或 CentOS 8。其次,你需要選擇合適的鏡像文件類型。CentOS 發(fā)行版提供了三種主要類型的鏡
評論