雖然說,分層的軟件開發對於維護性和開發性都有很好的幫助,但是有些情況下,又不得不爲了性能耦合在一起,比如nginx很容易做一些http層面的東西,比如緩存、圖片處理、反向代理之類的,但是,如果要驗證用戶權限之類,和業務相互耦合的情況,其實用nginx+lua的方案挺好的。所以,也趁着目前有時間,準備花點時間學一下nginx+lua的開發,同時還有一些應用場景。
要進行開發就要有開發環境,在這裏,我們只需要在編譯nginx的之前先安裝lua以及在安裝的時候編譯進 nginx的lua插件就OK了。
1 、yum安裝lua,下載luajit 2.0並安裝
shell>yum install lua lua-devel
然後去http://luajit.org/download.html下載luajit的安裝包並且解壓,剩下的就是make && make install,到此第一步是lua的環境已經安裝完成。
2、下載nginx源碼,解壓
3、下載ngx_devel_kit解壓
4、下載nginx_lua_module解壓
5、進入nginx的源碼目錄,然後運行
./configure --prefix=/opt/nginx \ #nginx的安裝路徑
--add-module=/path/to/ngx_devel_kit \ #ngx_devel_kit 的源碼路徑
--add-module=/path/to/lua-nginx-module #nginx_lua_module 的源碼路徑
然後make -j2、make install就OK了。
最後在nginx的config文件nginx.config中的server區加入
location /hello {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
}
然後啓動nginx,訪問http://nginx—ip/hello 就會出現"hello,lua"
就此我們可以看到nginx的lua模塊的效果。
~~~補充一點,因爲在後面的開發中可能要用到 nginx的echo模塊進行調試,所以還是加上了
./configure的時候加多個echo module的路徑就OK了。