2012/5/2 Kenny He <hzqbbc@gmail.com>:
> 请教2个问题,1)HTTP请求 POST /auth?key=kenny%40foo.com&type=user
> nginx有能根据key值去查mysql,获得upstream对应的host,port,并将http请求代理过去吗?
可以参考这个例子:
http://openresty.org/#DynamicRoutingBasedOnRedis
只要把这个例子里面配置了 ngx_redis2 模块的 location = /redis 的定义替换成配置了 ngx_drizzle
模块的。ngx_drizzle 模块的用法可以见这里:
http://wiki.nginx.org/HttpDrizzleModule
另一种玩法是使用 lua-resty-mysql 库:
https://github.com/agentzh/lua-resty-mysql
这样就不必再多定义一个 location 用于子请求了。
> 2)有何办法限制mail
> proxy中imap或pop3的客户端并发量吗?现在只看到有个limit conn模块但只能用于http,万分感谢!
>
据我所知,貌似没有现成的解决方案。
> 第一个问题本质是希望为webmail 做前端代理,第二个问题本质是为了保护后端的imap/pop3 服务器,我看到
> http://openresty.org/#DynamicRoutingBasedOnRedis
> 但不知如何转换成mysql查询,或者转成auth_http这种也行, 望百忙中抽空指点一二 ,非常感谢!:)
>
可以参看下面这几个例子:
http://openresty.org/#RoutingMySQLQueriesBasedOnURIArgs
http://chenxiaoyu.org/2012/02/08/nginx-lua-401-auth.html
另外,下面这套 PDF 格式的幻灯片中也有许多例子,包括使用 lua-resty-mysql 库的例子:
http://agentzh.org/misc/slides/libdrizzle-lua-nginx.pdf
祝好运!
-agentzh
P.S. 已抄送 OpenResty 邮件组,
这样其他人也可以看到:https://groups.google.com/group/openresty 也欢迎你订阅这个邮件组来进行交流。