nginx的強大,lua的高性能,真是一個不錯的組合,合到一塊兒就無敵了,呵呵。nginx
下面開始配置nginx,使其支持lua,是經過一個nginx模塊實現的,git
模塊地址:https://github.com/chaoslawful/lua-nginx-modulegithub
下載連接:https://github.com/chaoslawful/lua-nginx-module/archive/v0.8.10.tar.gzbash
一、下載源碼、解壓縮app
a、nginx源碼:curl
[root@localhost ~]# wget http://nginx.org/download/nginx-1.4.2.tar.gz [root@localhost ~]# tar zxvf nginx-1.4.2.tar.gz
b、lua模塊ide
[root@localhost ~]# wget -O lua-nginx-module-0.8.10.tar.gz https://github.com/chaoslawful/lua-nginx-module/archive/v0.8.10.tar.gz [root@localhost ~]# tar zxvf lua-nginx-module-0.8.10.tar.gz
c、luajit(lua即時編譯器)
工具
[root@localhost ~]# wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz [root@localhost ~]# tar zxvf LuaJIT-2.0.2.tar.gz
d、ngx_devel_kit(nginx開發工具包)性能
[root@localhost ~]# wget -O ngx_devel_kit-0.2.18.tar.gz https://github.com/simpl/ngx_devel_kit/archive/v0.2.18.tar.gz [root@localhost ~]# tar zxvf ngx_devel_kit-0.2.18.tar.gz
二、安裝luajit開發工具
[root@localhost ~]# make [root@localhost ~]# make install
三、安裝nginx
方法a、使用luajit即時編譯器
[root@localhost nginx-1.4.1]# export LUAJIT_LIB=/usr/local/lib [root@localhost nginx-1.4.1]# export LUAJIT_INC=/usr/local/include/luajit-2.0 [root@localhost nginx-1.4.1]# ./configure \ --prefix=/usr/local/nginx-1.4.1 \ --with-http_stub_status_module \ --add-module=../lua-nginx-module-0.8.9 \ --add-module=../ngx_devel_kit-0.2.18 [root@localhost nginx-1.4.1]# make -j 4 [root@localhost nginx-1.4.1]# make install [root@localhost ~]# echo '/usr/local/lib' >> /etc/ld.so.conf.d/lua.conf [root@localhost ~]# ldconfig
方法b、使用lua編譯器
注意:使用lua編譯器的話,須要先安裝lua執行環境,通常的系統都是預裝好的,若是沒有預裝 好的話,能夠用yum安裝,以下:
[root@localhost ~]# yum install lua lua-devel
安裝nginx:
[root@localhost nginx-1.4.1]# export LUA_LIB=/usr/lib64 [root@localhost nginx-1.4.1]# export LUA_INC=/usr/include [root@localhost nginx-1.4.1]# ./configure \ --prefix=/usr/local/nginx-1.4.1 \ --with-http_stub_status_module \ --add-module=../lua-nginx-module-0.8.9 \ --add-module=../ngx_devel_kit-0.2.18 [root@localhost nginx-1.4.1]# make -j 4 [root@localhost nginx-1.4.1]# make install
注意:讓nginx支持lua,有兩種方法,一是使用luajit即時編譯器,二是使用lua編譯器。推薦使用luajit,由於效率高。其中ngx_devel_kit的做用有2個,一是開發用的,二是能夠在錯誤日誌中記錄nginx處理階段信息(rewrite phase,access phase,content phase),須要將錯誤日誌級別調高,調試時能夠設置成debug。
四、驗證安裝
使用lua編譯器時顯示以下:
[root@localhost ~]# lsof -p 3359 | grep -i lua nginx 3359 root mem REG 8,3 183920 394551 /usr/lib64/liblua-5.1.so
使用luajit即時編譯器時顯示以下:
[root@localhost ~]# lsof -p 13177 | grep -i lua nginx 13177 root mem REG 8,3 452024 405089 /usr/local/lib/libluajit-5.1.so.2.0.2
五、驗證配置指令和輸出
修改nginx.conf配置文件,加入下面指令:
location / { content_by_lua 'ngx.say("hello world!")'; }
重啓nginx,用curl測試
[root@localhost ~]# curl -i localhost HTTP/1.1 200 OK Server: nginx/1.4.1 Date: Tue, 24 Sep 2013 23:23:58 GMT Content-Type: application/octet-stream Transfer-Encoding: chunked Connection: keep-alive hello world!
六、大功告成
更多可用指令請查閱:http://wiki.nginx.org/HttpLuaModule