nginx tcp lua module將 Lua 的功能嵌入 Nginx 服務(wù)器
ngx_tcp_lua_module-將Lua的功能嵌入Nginx服務(wù)器。在tcp流模式下工作。
基于nginx1.4.1版本, 本著精簡(jiǎn),高效,模塊化等原則,吸收nginx-http-lua模塊(https://github.com/openresty/lua-nginx-module), tcp_lua模塊(https://github.com/bigplum/nginx-tcp-lua-module) 等第三方nginx模塊的設(shè)計(jì)框架和精華代碼,忠于nginx編程思想和代碼風(fēng)格,化繁去簡(jiǎn), 實(shí)現(xiàn)基于tcp之上的自定義協(xié)議服務(wù)器,支持類似nginx擴(kuò)展模塊的開(kāi)發(fā),支持類似ngx-http-lua的快速的業(yè)務(wù)邏輯開(kāi)發(fā)模式,支持基于異步socket反向代理,并實(shí)現(xiàn)與上游http,mysql服務(wù)的請(qǐng)求交互,支持http簡(jiǎn)單負(fù)載均衡. 1. 日志: 新增 error_log, access_log 的網(wǎng)絡(luò)日志功能。 2. tcp 模塊。 tcp框架下自定義協(xié)議開(kāi)發(fā),模塊示例 demo 3. 基于tcp框架的tcp_lua模塊。 在基本代碼框架上做調(diào)整: 3.1 將整個(gè)ngx_tcp_lua作為一個(gè)獨(dú)立模塊,而非整個(gè)tcp模塊圍繞tcp_lua模塊開(kāi)發(fā)。 3.2 鑒于一個(gè)連接上僅有一個(gè)客戶端,將封裝的socket上下游通用類分離出下游函數(shù)。socket類僅與上游交互。簡(jiǎn)化邏輯。 3.3 為提高效率,lua處理請(qǐng)求分為 連接會(huì)話和協(xié)議請(qǐng)求。充分利用keepalive。 具體參照文檔和實(shí)現(xiàn)。 3.4 去掉接收數(shù)據(jù)時(shí)的模式匹配功能函數(shù)receiveutil,簡(jiǎn)化接收發(fā)送緩存的實(shí)現(xiàn),使得對(duì)內(nèi)存的控制更精確,內(nèi)存資源管理更簡(jiǎn)單。 3.5 擴(kuò)充init_by_lua功能和共享內(nèi)存操作功能, ngx.sleep,ngx.exit等函數(shù)。 3.6 優(yōu)化代碼和修復(fù)已知bug. 3.7 支持使用mysql,http協(xié)議與上游交互,并支持簡(jiǎn)單的負(fù)載均衡和重試機(jī)制 3.8 實(shí)現(xiàn)ngx.nlog代替ngx.log打印網(wǎng)絡(luò)日志 4. 詳細(xì)說(shuō)明見(jiàn) src/tcp/doc/ 相關(guān)文檔
評(píng)論
圖片
表情
