nginx lua環境搭建

2021-07-17 04:30:55 字數 3008 閱讀 8346

lua 是乙個小巧的指令碼語言。該語言的設計目的是為了嵌入應用程式中,從而為應用程式提供靈活的擴充套件和定製功能。

lua指令碼可以很容易的被c/c++**呼叫,也可以反過來呼叫c/c++的函式,這使得lua在應用程式中可以被廣泛應用。

不僅僅作為擴充套件指令碼,也可以作為普通的配置檔案,代替xml,ini等檔案格式,並且更容易理解和維護。

centos上面需要先安裝如下依賴:yum install openssl openssl-devel curl curl-devel zlib zlib-devel pcre pcre-devel lua lua-devel

centos6.6 預設安裝的lua版本是:lua 5.1.4

方法一:直接使用tengine

安裝步驟如下:

這樣,就安裝好了。

然後,vim /usr/local/tengine/conf/nginx.conf

加入如下**

location /lua
最後,啟動tengine

訪問    

頁面出現hello world lua ,表示安裝成功

方法二:使用openresty

openresty 是乙個基於 nginx 與 lua 的高效能 web 平台,其內部整合了大量精良的 lua 庫、第三方模組以及大多數的依賴項。用於方便地搭建能夠處理超高併發、擴充套件性極高的動態 web 應用、web 服務和動態閘道器。

官方**:

安裝文件:installation.html

安裝步驟:

wget 

tar -xvf ngx_openresty-1.9.7.2.tar.gz

cd ngx_openresty-1.9.7.2

./configure --prefix=/usr/local/openresty  (預設整合了lua環境)

gmake

gmake install

這樣,就安裝好了。

然後 vim /usr/local/openresty/nginx/conf/nginx.conf

加入如下**:

location /lua
最後,執行 /usr/local/openresty/nginx/sbin/nginx 啟動nginx

訪問    

頁面出現hello world lua ,表示安裝成功

我們把lua**放在nginx配置中會隨著lua的**的增加導致配置檔案太長不好維護,因此我們應該把lua**移到外部檔案中儲存。

nginx + lua簡單使用示例

1:vim /lua/test.lua

內容如下:

ngx.say("hello world");

修改nginx.conf,新增如下內容

location /luafile
然後訪問/luafile 即可看到效果

預設情況下lua_code_cache  是開啟的,即快取lua**,即每次lua**變更必須reload nginx才生效,如果在開發階段可以通過lua_code_cache  off;關閉快取,這樣除錯時每次修改lua**不需要reload nginx;

開啟後reload nginx會看到如下報警

nginx: [alert] lua_code_cache is off; this will hurt performance in /usr/local/openresty/nginx/conf/nginx.conf:54

下面是乙個使用lua獲取http請求資料的例子 vim /lua/info.lua

--請求頭  

local headers = ngx.req.get_headers()

ngx.say("請求頭資訊

")ngx.say("host : ", headers["host"], "

")ngx.say("user-agent : ", headers["user-agent"], "

")ngx.say("user-agent2 : ", headers.user_agent, "

")--get請求引數

local uri_args = ngx.req.get_uri_args()

ngx.say("get請求引數

")ngx.say("id : ", uri_args["id"], "

")ngx.say("type : ", uri_args["type"], "

")--post請求引數

ngx.req.read_body()

local post_args = ngx.req.get_post_args()

ngx.say("post請求引數

")ngx.say("username : ", post_args["username"], "

")ngx.say("password : ", post_args["password"], "

")--獲取其他請求資訊

ngx.say("獲取其他請求資訊

")ngx.say("request_uri : ", ngx.var.request_uri, "

")ngx.say("請求的http協議版本 : ", ngx.req.http_version(), "

")ngx.say("請求方法 : ", ngx.req.get_method(), "

")ngx.say("原始的請求頭內容 : ", ngx.req.raw_header(), "

")ngx.say("請求的body內容體 : ", ngx.req.get_body_data(), "

")

Nginx Lua學習筆記 環境搭建

使用的openresty 具體教程可以參考 這裡只記錄下我自己的環境搭建過程 系統使用的是ubuntu 14.04.1 server amd64.iso 所有操作都使用了sudo提權.首先參考解決apt get install時media change please insert the disc ...

另外一種搭建nginx lua環境的方法

使用大牛 zhangyichun 提供的整合包快速安裝。例如 nginx的第三方模組redis,這個包實質就是乙個.lua檔案,是個庫檔案,提供一些訪問redis的介面 git clone 拷貝 該包中,有乙個 lib 目錄,將 lib 目錄下的檔案和子目錄拷貝至上文lua package path...

linux系統安裝Nginx Lua環境

這是我總結的安裝,供參考 需要最新版的nginx,luajit,ngx devel kit,lua nginx module等安裝檔案 nginx luajit lua或者luajit都是可以的,但是出於效能的考慮,推薦安裝luajit ngx devel kit lua nginx module ...