Hello! 2013/5/8 熊景: > 最近,打算用ngx_lua实现一个代理模块,具体的任务是接收到前端http请求之后,使用lua对请求参数做一些处理,然后向上游服务器发送tcp请求, > 不过同一个业务对应的上游服务器可能有好几台,如果我要对上游服务器做负载均衡的话,是需要用lua来实现一套负载均衡的逻辑,还是可以借用nginx一些现成的模块? 使用 Lua 无疑更灵活一些。这里有一个和 ngx_proxy 协作的例子可供参考: http://openresty.org/#DynamicRoutingBasedOnRedis 当然,如果直接在 Lua 里面挑后端 socket(利用 ngx_lua 的 cosocket API),则 failover 逻辑也可以方便和高效地在 Lua 里面实现。 > 如果可以的话,请问如何在lua里边使用nginx其他的模块呢? > ngx_lua 可以通过多种方式和其他 nginx 模块协作,比如通过 nginx 变量、通过 nginx 子请求(ngx_lua 的 ngx.location.capture API)或者 ngx_lua 的 ndk.set_var API: http://wiki.nginx.org/HttpLuaModule#ndk.set_var.DIRECTIVE 阅读我的 Nginx 教程可以得到更多的细节: http://wiki.nginx.org/HttpLuaModule#ndk.set_var.DIRECTIVE Best regards, -agentzh