◆ openresty 的核心組成部分:
使用這四個核心元件, openresty 就可以完成相當多的網路應用開發工作了。同時,它還包含了其他一些非常有用的nginx 元件和lua 元件,進一步增加了1. nginx:高效能的web 伺服器
2. luajit:高效的lua 語言直譯器/編譯器
3. ngx_lua(http_lua):處理http 協議,讓lua 程式嵌入在nginx 裡執行
4. stream_lua:與ngx lua 類似,但處理的是tcp/udp 協議
開發工作的便利。
◆ nginx 元件:
◆ 常用的lua元件: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 操作
◆ 輔助工具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目錄。
bin目錄裡存放的是openresty可執行檔案,關係到openresty的執行,較重要的有:1. bin:存放可執行檔案
2. luajit:luajit 執行庫
3. lualib:lua元件
4. nginx:nginx 核心執行平台
5. pod:參考手冊(restydoc)使用的資料
6. site:包管理工具(opm)使用的資料
lualib 目錄裡存放的是openresty自帶的lua 元件,如lua_cjson、lua_core1. openresty:可執行檔案,用來啟動openresty服務(呼叫nginx的軟鏈結openresty -> /home/openresty/nginx/sbin/nginx)
2. opm:元件管理工具,用來安裝各種功能元件
3. resty:命令列工具,可直接執行lua 程式
4. restydoc:參考手冊
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 錯誤日誌,而...