openresty資料之基本資訊

2021-09-23 10:10:30 字數 2281 閱讀 1796

◆ openresty 的核心組成部分:

1. nginx:高效能的web 伺服器

2. luajit:高效的lua 語言直譯器/編譯器

3. ngx_lua(http_lua):處理http 協議,讓lua 程式嵌入在nginx 裡執行

4. stream_lua:與ngx lua 類似,但處理的是tcp/udp 協議

使用這四個核心元件, openresty 就可以完成相當多的網路應用開發工作了。同時,它還包含了其他一些非常有用的nginx 元件和lua 元件,進一步增加了

開發工作的便利。

◆ nginx 元件:

1. ngx_conv:轉換不同的字符集編碼

2. ngx_encrypted:使用 aes-256 演算法執行簡單的加密運算

3. ngx_echo:提供一系列「echo」風格的指令和變數

4. ngx_set_misc:增強的「set ***」指令,用來操作變數;

5. ngx_headers_more:更方便地處理 http 請求頭和響應頭的指令

6. ngx_memc:支援各種memcached 操作

7. ngx_redis2:支援各種redis 操作

8. ngx_dizzle:支援各種mysql 操作

9. ngx_postgres:支援各種postgresql 操作

◆ 常用的lua元件:

1. lua_core:open_resty的核心功能庫;

2. lua_cjson:處理json 格式的資料,速度很快(使用c語言實現)

3. lua_string:hex/rnd5/shal/sha256等字串功能

4. lua_upload:流式讀取http的上行資料

5. lua_healthcheck:後端集群健康檢查

6. lua_limit_traffic:定製流量控制策略

7. lua_lock:基於共享記憶體的非阻塞鎖

8. lua_lrucache:高效的lru快取功能

9. lua_dns:高效、非阻塞的dns解析功能

10. lua_websocket:高效、非阻塞的websocket功能

11. lua_redis:redis 客戶端,用起來比ngx_redis2更靈活

12. lua_memcached:memcached 客戶端,用起來比ngx_memc 更靈活

13. lua_mysql:mysql客戶端,用起來比ngx_dizzle 更靈活

◆ 輔助工具

核心元件、nginx 元件和lua 元件實現了openresty 的主要功能, 但作為整合開發環境,輔助開發、除錯和運維的工具也是必不可少的。

1. opm:類似rpm 、口pm 的管理工具,用來安裝各種功能元件

2. resty-cli:以命令列的形式直接執行openresty/lua 程式

◆ 元件示意圖:

◆ 版本號:

openresty 使用四位數字作為版本號,形式是:a.b.c.x ,其中前三位數字是內部nginx的版本,作為大版本號,第四位數字是openresty 自己的發布版本號,也就是小版本號。

◆ 目錄結構:

通常我們需要關注的是bin和lualib目錄。

1. bin:存放可執行檔案

2. luajit:luajit 執行庫

3. lualib:lua元件

4. nginx:nginx 核心執行平台

5. pod:參考手冊(restydoc)使用的資料

6. site:包管理工具(opm)使用的資料

bin目錄裡存放的是openresty可執行檔案,關係到openresty的執行,較重要的有:

1. openresty:可執行檔案,用來啟動openresty服務(呼叫nginx的軟鏈結openresty -> /home/openresty/nginx/sbin/nginx)

2. opm:元件管理工具,用來安裝各種功能元件

3. resty:命令列工具,可直接執行lua 程式

4. restydoc:參考手冊

lualib 目錄裡存放的是openresty自帶的lua 元件,如lua_cjson、lua_core

openresty資料之軟體安裝

wget解壓縮 tar zxvf openresty 1.13.6.2.tar.gz編譯前的配置工作 cd openresty 1.13.6.2 configure注 報錯資訊及解決方案 1 報錯一 usr bin env perl 沒有那個檔案或目錄解決方案 需要安裝perl 2 報錯二 conf...

docker實戰之部署openresty

總結openresty 又稱 ngx openresty 是乙個基於 nginx的可伸縮的 web 平台,由中國人章亦春發起,提供了很多高質量的第三方模組。openresty 是乙個強大的 web 應用伺服器,web 開發人員可以使用 lua 指令碼語言調動 nginx 支援的各種 c 以及 lua...

OpenResty之指令與常用API

通過 lua 編寫 nginx 指令碼的基本構建塊是指令。指令常用於指定 lua 是幾時執行的以及如何使用執行的結果。下圖展示了指令執行的順序。語法 lua capture error log size 預設 none 上下文 http 啟用乙個指定大小的緩衝區來捕獲所有的 nginx 錯誤日誌,而...