国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

高性能軟件負(fù)載OpenResty介紹和安裝

這篇具有很好參考價(jià)值的文章主要介紹了高性能軟件負(fù)載OpenResty介紹和安裝。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


1 OpenResty介紹

高性能軟件負(fù)載OpenResty介紹和安裝

OpenResty是一個(gè)基于 Nginx 與 Lua 的高性能 Web 平臺(tái),其內(nèi)部集成了大量精良的 Lua 庫、第三方模塊以及大多數(shù)的依賴項(xiàng)

	用于方便地搭建能夠處理超高并發(fā)、擴(kuò)展性極高的動(dòng)態(tài) Web 應(yīng)用、Web 服務(wù)和動(dòng)態(tài)網(wǎng)關(guān)

	OpenResty通過匯聚各種設(shè)計(jì)精良的 Nginx 模塊(主要由 OpenResty 團(tuán)隊(duì)自主開發(fā)),從而將 Nginx 有效地變成一個(gè)強(qiáng)大的通用 Web 應(yīng)用平臺(tái),這樣,Web 開發(fā)人員和系統(tǒng)工程師可以使用 Lua 腳本語言調(diào)動(dòng) Nginx 支持的各種 C 以及 Lua 模塊,快速構(gòu)造出足以勝任 10K 乃至 1000K 以上單機(jī)并發(fā)連接的高性能 Web 應(yīng)用系統(tǒng)。

	OpenResty的目標(biāo)是讓你的Web服務(wù)直接跑在Nginx服務(wù)內(nèi)部,充分利用 Nginx 的非阻塞 I/O 模型,不僅僅對(duì) HTTP 客戶端請求,甚至于對(duì)遠(yuǎn)程后端諸如 MySQL、PostgreSQL、Memcached 以及 Redis 等都進(jìn)行一致的高性能響應(yīng)。

1.1 Nginx 的流程定義

	nginx實(shí)際把請求處理流程劃分為了11個(gè)階段,這樣劃分的原因是將請求的執(zhí)行邏輯細(xì)分,各階段按照處理時(shí)機(jī)定義了清晰的執(zhí)行語義,開發(fā)者可以很容易分辨自己需要開發(fā)的模塊應(yīng)該定義在什么階段。

高性能軟件負(fù)載OpenResty介紹和安裝

  1. 當(dāng)請求進(jìn)入Nginx后先READ REQUEST HEADERS 讀取頭部 然后再分配由哪個(gè)指令操作
  2. Identity 尋找匹配哪個(gè)Location*
  3. Apply Rate Limits 是否要對(duì)該請求限制
  4. Preform Authertication 權(quán)限驗(yàn)證
  5. Generate Content 生成給用戶的響應(yīng)內(nèi)容
  6. 如果配置了反向代理 那么將要和上游服務(wù)器通信 Upstream Services
  7. 當(dāng)返回給用戶請求的時(shí)候要經(jīng)過過濾模塊 Response Filter
  8. 發(fā)送給用戶的同時(shí) 記錄一個(gè)Log日志

1.1.1 流程詳解

階段 描述
post-read 接收到完整的http頭部后處理的階段,在uri重寫之前,一般跳過
server-rewrite location匹配前,修改uri的階段,用于重定向,location塊外的重寫指令(多次執(zhí)行)
find-config uri尋找匹配的location塊配置項(xiàng)(多次執(zhí)行)
rewrite 找到location塊后再修改uri,location級(jí)別的uri重寫階段(多次執(zhí)行)
post-rewrite 防死循環(huán),跳轉(zhuǎn)到對(duì)應(yīng)階段
preaccess 權(quán)限預(yù)處理
access 判斷是否允許這個(gè)請求進(jìn)入
post-access 向用戶發(fā)送拒絕服務(wù)的錯(cuò)誤碼,用來響應(yīng)上一階段的拒絕
try-files 訪問靜態(tài)文件資源
content 內(nèi)容生成階段,該階段產(chǎn)生響應(yīng),并發(fā)送到客戶端
log 記錄訪問日志

1.1.2 OpenResty處理流程

由于 Nginx 把一個(gè)請求分成了很多階段,第三方模塊就可以根據(jù)自己的行為,掛載到不同階段處理達(dá)到目的,OpenResty 也應(yīng)用了同樣的特性

	不同的階段,有不同的處理行為,這是 OpenResty 的一大特色,OpenResty 處理一個(gè)請求的流程參考下圖

高性能軟件負(fù)載OpenResty介紹和安裝

指令 描述
init_by_lua,init_by_lua_block 運(yùn)行在Nginx loading-config 階段,注冊Nginx Lua全局變量,和一些預(yù)加載模塊。是Nginx master進(jìn)程在加載Nginx配置時(shí)執(zhí)行
init_worker_by_lua 在Nginx starting-worker階段,即每個(gè)nginx worker啟動(dòng)時(shí)會(huì)調(diào)用,通常用來hook worker進(jìn)程,并創(chuàng)建worker進(jìn)行的計(jì)時(shí)器,用來健康檢查,或者設(shè)置熔斷記時(shí)窗口等等。
access_by_lua 在access tail階段,用來對(duì)每次請求做訪問控制,權(quán)限校驗(yàn)等等,能拿到很多相關(guān)變量。例如:請求體中的值,header中的值,可以將值添加到ngx.ctx, 在其他模塊進(jìn)行相應(yīng)的控制
balancer_by_lua 通過Lua設(shè)置不同的負(fù)載均衡策略, 具體可以參考lua-resty-balancer
content_by_lua 在content階段,即content handler的角色,即對(duì)于每個(gè)api請求進(jìn)行處理,注意不能與proxy_pass放在同一個(gè)location下
proxy_pass 真正發(fā)送請求的一部分, 通常介于access_by_lua和log_by_lua之間
header_filter_by_lua 在output-header-filter階段,通常用來重新響應(yīng)頭部,設(shè)置cookie等,也可以用來作熔斷觸發(fā)標(biāo)記
body_filter_by_lua 對(duì)于響應(yīng)體的content進(jìn)行過濾處理
log_by_lua 記錄日志即,記錄一下整個(gè)請求的耗時(shí),狀態(tài)碼等

2 Openresty安裝

2.1 yum安裝

你可以在你的 CentOS 系統(tǒng)中添加 openresty 倉庫,這樣就可以便于未來安裝或更新我們的軟件包(通過 yum update 命令)

2.1.1 添加OpenResty倉庫

運(yùn)行下面的命令就可以添加我們的倉庫:

sudo yum install yum-utils
sudo yum-config-manager --add-repo https://openresty.org/package/centos/openresty.repo

2.1.2 安裝OpenResty

然后就可以像下面這樣安裝軟件包,比如 openresty


sudo yum install openresty

2.2 源代碼編譯安裝

OpenResty插件分為自帶插件以及第三方插件,如果是自帶插件直接激活就可以,如果是第三方插件需要手動(dòng)下載插件添加進(jìn)去,這里我們以本地緩存插件安裝舉例

2.2.1 安裝編譯環(huán)境


yum install -y make cmake gcc gcc-c++ autoconf automake libpng-devel libjpeg-devel zlib libxml2-devel ncurses-devel bison libtool-ltdl-devel libiconv libmcrypt mhash mcrypt pcre-devel openssl-devel freetype-devel libcurl-devel lua-devel readline-devel curl wget

2.2.2下載最新版源碼


mkdir /usr/local/openresty
wget https://openresty.org/download/openresty-1.21.4.1.tar.gz
tar -zxvf openresty-1.21.4.1.tar.gz # 解壓openresty

2.2.3下載緩存插件

到 緩存插件地址 下載最新版 緩存插件


mkdir /usr/local/openresty/modules&& cd /usr/local/openresty/modules
wget http://labs.frickle.com/files/ngx_cache_purge-2.3.tar.gz
tar -zxvf ngx_cache_purge-2.3.tar.gz #解壓緩存插件

2.2.4 編譯OpenResty

選擇需要的插件啟用, –with-Components 激活組件,–without 則是禁止組件 ,–add-module是安裝第三方模塊


./configure --prefix=/usr/local/openresty --with-luajit --without-http_redis2_module --with-http_stub_status_module --with-http_v2_module --with-http_gzip_static_module --with-http_sub_module --add-module=/usr/local/openresty/modules/ngx_cache_purge-2.3 #配置緩存插件的源碼路徑

這里禁用了 redis組件 并且 安裝了第三方緩存組件

出現(xiàn)如下界面表示編譯成功

高性能軟件負(fù)載OpenResty介紹和安裝

2.2.5 安裝OpenResty


gmake && gmake install

出現(xiàn)如下界面表示安裝成功

高性能軟件負(fù)載OpenResty介紹和安裝

2.2.6 環(huán)境設(shè)置


vi /etc/profile ##加入path路徑
export PATH=$PATH:/usr/local/openresty/nginx/sbin
source /etc/profile ##生效配置

2.2.7 查看環(huán)境


nginx -v
nginx version: openresty/1.17.8.2

查看安裝的組件


nginx -V

高性能軟件負(fù)載OpenResty介紹和安裝

2.8 環(huán)境配置

2.8.1 配置文件修改

基于我們上節(jié)課的內(nèi)容改造nginx.conf

x

user  root;
worker_processes  2;

error_log  logs/error.log  info;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    
    include conf.d/*.conf;
}

2.8.2 創(chuàng)建配置目錄

創(chuàng)建配置文件目錄


mkdir /usr/local/openresty/nginx/conf/conf.d

2.8.3 創(chuàng)建Nginx配置文件

我們創(chuàng)建的conf.d目錄中創(chuàng)建一個(gè)測試的配置文件


server {
    server_name www.itcast.com;
    charset   utf-8;
    location /{
        default_type text/html;
        content_by_lua '
            ngx.say("<p>Hello, World!</p>")
            ';
    }
}

如果你熟悉 nginx 的配置,應(yīng)該對(duì)以上代碼就很熟悉。這里我們將 html 代碼直接寫在了配置文件中。

2.8.4啟動(dòng)OpenResty


nginx -c /usr/local/openresty/nginx/conf/nginx.conf

接下來我們可以使用 curl 來測試是否能夠正常范圍


curl http://127.0.0.1/
<p>Hello, World!</p>

我們在配置文件寫的 html 已正常輸出。文章來源地址http://www.zghlxwxcb.cn/news/detail-472827.html

到了這里,關(guān)于高性能軟件負(fù)載OpenResty介紹和安裝的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Lvs+KeepAlived高可用高性能負(fù)載均衡

    Lvs+KeepAlived高可用高性能負(fù)載均衡

    目錄 1.環(huán)境介紹 2.配置keepalived ?3.測試 1.測試負(fù)載均衡 2.測試RS高可用 3.測試LVS高可用 3.1測試lvs主服務(wù)宕機(jī) 3.2.測試lvs主服務(wù)器恢復(fù) 4.我在實(shí)驗(yàn)中遇到的錯(cuò)誤 環(huán)境:centos7 RS1---RIP1:192.168.163.145 ? ? ? ? ? ?VIP 192.168.163.200 RS2---RIP2:192.168.163.146 ? ? ? ? ? ?VIP 192.168.163.200 LVS_MAST

    2024年02月10日
    瀏覽(31)
  • Keepalived+Lvs高可用高性能負(fù)載配置

    環(huán)境準(zhǔn)備 IP 配置 VIP node1 192.168.134.170 LVS+Keepalived 192.168.134.100 node3 192.168.134.172 LVS+Keepalived 192.168.134.100 node2 192.168.134.171 做web服務(wù)器使用 node4 192.168.134.173 做web服務(wù)器使用 1、準(zhǔn)備node1與node3環(huán)境(安裝LVS與Keepalived)==由于只是簡單的模擬測試,故環(huán)境安裝使用yum即可。(LVS使用

    2024年02月13日
    瀏覽(26)
  • 架構(gòu)篇20:高性能負(fù)載均衡-分類及架構(gòu)

    架構(gòu)篇20:高性能負(fù)載均衡-分類及架構(gòu)

    單服務(wù)器無論如何優(yōu)化,無論采用多好的硬件,總會(huì)有一個(gè)性能天花板,當(dāng)單服務(wù)器的性能無法滿足業(yè)務(wù)需求時(shí),就需要設(shè)計(jì)高性能集群來提升系統(tǒng)整體的處理性能。 高性能集群的本質(zhì)很簡單,通過增加更多的服務(wù)器來提升系統(tǒng)整體的計(jì)算能力。由于計(jì)算本身存在一個(gè)特點(diǎn):

    2024年01月25日
    瀏覽(30)
  • keepalived+haproxy 搭建高可用高負(fù)載高性能rabbitmq集群

    keepalived+haproxy 搭建高可用高負(fù)載高性能rabbitmq集群

    一、環(huán)境準(zhǔn)備 1. 我這里準(zhǔn)備了三臺(tái)centos7 虛擬機(jī) 主機(jī)名 主機(jī)地址 軟件 node-01 192.168.157.133 rabbitmq、erlang、haproxy、keepalived node-02 192.168.157.134 rabbitmq、erlang、haproxy、keepalived node-03 192.168.157.135 rabbitmq、erlang 2. 關(guān)閉三臺(tái)機(jī)器的防火墻 3. 三臺(tái)主機(jī)的host和hostname配置 4. erlang與rabbitmq版

    2024年02月11日
    瀏覽(28)
  • Nginx搭配負(fù)載均衡和動(dòng)靜分離:構(gòu)建高性能Web應(yīng)用的完美組合

    Nginx搭配負(fù)載均衡和動(dòng)靜分離:構(gòu)建高性能Web應(yīng)用的完美組合

    目錄 前言 一、Nginx簡介 1.Nginx是什么 2.Nginx的特點(diǎn) 3.Nginx在哪使用 4.如何使用Nginx 5.Nginx的優(yōu)缺點(diǎn) 6.Nginx的應(yīng)用場景 二、負(fù)載均衡和動(dòng)靜分離 1.負(fù)載均衡 2.動(dòng)靜分離 三、Nginx搭載負(fù)載均衡并提供前后端分離后臺(tái)接口數(shù)據(jù) 1.Nginx安裝 2.tomcat負(fù)載均衡 3.負(fù)載均衡后臺(tái)項(xiàng)目發(fā)布 四、前

    2024年02月06日
    瀏覽(28)
  • 高性能API網(wǎng)關(guān)Kong介紹

    高性能API網(wǎng)關(guān)Kong介紹

    本文:高性能、API網(wǎng)關(guān)、Kong、微服務(wù) ??????? ????????API網(wǎng)關(guān)是隨著微服務(wù)(Microservice)概念興起的一種架構(gòu)模式。原本一個(gè)龐大的單體應(yīng)用(All in one)業(yè)務(wù)系統(tǒng)被拆分成許多微服務(wù)(Microservice)系統(tǒng)進(jìn)行獨(dú)立的維護(hù)和部署,服務(wù)拆分帶來的變化是API的規(guī)

    2024年02月03日
    瀏覽(22)
  • 高性能的全文檢索庫Apache Lucene 介紹

    高性能的全文檢索庫Apache Lucene 介紹

    ????????Apache Lucene 是一個(gè)高性能的全文檢索庫,由 Apache Software Foundation 維護(hù)。Lucene 提供了豐富的 API,用于實(shí)現(xiàn)快速、準(zhǔn)確的全文搜索。本文將詳細(xì)介紹 Apache Lucene 的技術(shù)特點(diǎn)、應(yīng)用場景和優(yōu)勢。 ????????Apache Lucene 的歷史和發(fā)展 ????????Apache Lucene 起源于 1999 年

    2024年03月27日
    瀏覽(23)
  • IBM Spectrum LSF Explorer 為要求苛刻的分布式和任務(wù)關(guān)鍵型高性能技術(shù)計(jì)算環(huán)境提供強(qiáng)大的工作負(fù)載管理

    IBM Spectrum LSF Explorer 為要求苛刻的分布式和任務(wù)關(guān)鍵型高性能技術(shù)計(jì)算環(huán)境提供強(qiáng)大的工作負(fù)載管理

    適用于 IBM Spectrum LSF 集群的強(qiáng)大、輕量級(jí)報(bào)告解決方案 ● ??????? 允許不同的業(yè)務(wù)和技術(shù)用戶使用單一解決方案快速創(chuàng)建和查看報(bào)表和儀表板 ● ????? 利用可擴(kuò)展的庫提供預(yù)構(gòu)建的報(bào)告 ● ? ? ? 自定義并生成性能、工作負(fù)載和資源使用情況的報(bào) 您的 IBM? Spectrum LSF 集

    2024年02月10日
    瀏覽(21)
  • 高性能、快響應(yīng)!火山引擎 ByteHouse 物化視圖功能及入門介紹

    高性能、快響應(yīng)!火山引擎 ByteHouse 物化視圖功能及入門介紹

    更多技術(shù)交流、求職機(jī)會(huì),歡迎關(guān)注 字節(jié)跳動(dòng)數(shù)據(jù)平臺(tái)微信公眾號(hào),回復(fù)【1】進(jìn)入官方交流群 物化視圖是指將視圖的計(jì)算結(jié)果存儲(chǔ)在數(shù)據(jù)庫中的一種技術(shù)。當(dāng)用戶執(zhí)行查詢時(shí),數(shù)據(jù)庫會(huì)直接從已經(jīng)預(yù)計(jì)算好的結(jié)果中獲取數(shù)據(jù),而不需要重新計(jì)算視圖。具體來說,物化視圖是

    2023年04月27日
    瀏覽(22)
  • 【高性能計(jì)算】opencl安裝及相關(guān)概念

    異構(gòu)計(jì)算是一種利用多種不同類型的計(jì)算資源來協(xié)同解決計(jì)算問題的方法。它的核心思想是將不同特性和能力的計(jì)算設(shè)備(例如CPU、GPU、FPGA等)組合在一起,以充分發(fā)揮它們在不同類型的工作負(fù)載和任務(wù)中的優(yōu)勢。 傳統(tǒng)的計(jì)算模型通常依賴于單一類型的處理器,如中央處理

    2024年02月11日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包