概述
OpenResty® 是一個基於 Nginx 和 Lua 的高級 Web,內部集成了大量精良的 Lua 庫,同時模塊以及大多數依賴項。動態 Web 應用、Web 服務和動態網關。

OpenResty® 通過匯集各種設計精良的 Nginx 模塊(主要由 OpenResty 團隊自主開發),從而將 Nginx 有效地變成一個主要的通用 Web 應用平台。這樣,Web 開發人員和系統工程師可以使用 Lua 腳本語言 Nginx支持的各種 C 以及 Lua 模塊,快速構造出未來勝任 10K 關鍵 1000K 以上單機背景的精彩 Web 應用系統。

OpenResty® 的目標是讓你的 Web 服務直接跑在 Nginx 服務內部,充分利用 Nginx 的非互聯網 I/O 模型,模仿對 HTTP 客戶端,甚至於對遠程真實像 MySQL、PostgreSQL、Memcached 和 Redis等都進行一致的響應。

組成
OpenResty 不是一個“單塊”(Monolithic)的程序,由後期設計的組件構成,這些組件可以組裝或固定,共同構建完整的發展發展環境。

核心組件:

  • nginx
  • LuaJit:Lua語言解釋器
  • ngx_lua:處理http協議,讓lua程序嵌入在Nginx裡運行
  • stream_lua:處理tcp/udp協議

安裝
採用源碼安裝。

安裝依賴

yum -y install readline-devel pcre-devel openssl-devel gcc gcc-c++ postgresql-devel geoip-devel

下載解壓

cd /opt
wget https://openresty.org/download/openresty-1.19.3.1.tar.gz
tar zxf openresty-1.19.3.1.tar.gz

編譯安裝

cd openresty-1.19.3.1
# 若不指定路徑,默認會安裝在/usr/local/openresty
./configure --prefix=/opt/openresty \
            --with-luajit \
            --without-http_redis2_module \
            --with-http_iconv_module \
            --with-http_postgres_module \
--with-http_ssl_module \
--with-http_v2_module \
--with-http_realip_module \
--with-http_geoip_module \
--with-http_gzip_static_module \
--with-http_stub_status_module
# 根據實際核心數配置
make -j8 && make install

驗證
新增一個location:

location /hello_lua {
  default_type 'text/plain';
  content_by_lua 'ngx.say("hello, lua")';
}

啟動nginx

/opt/openresty/bin/openresty

驗證

[root@test ~]# curl 127.0.0.1/hello_lua
hello, lua

ngx_lua相關指令

參考:https://github.com/openresty/lua-nginx-module#directives

 

來源文章:https://k8sdev.com/2021/05/15/OpenResty%E5%85%A5%E9%97%A8/

By tony

自由軟體愛好者~喜歡不斷的思考各種問題,有新的事物都會想去學習嘗試 做實驗並熱衷研究 沒有所謂頂天的技術 只有謙虛及不斷的學習 精進專業,本站主要以分享系統及網路相關知識、資源而建立。 Github http://stnet253.github.io

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料