Hello!
2016-03-28 0:10 GMT-07:00 Vurt:
> 我想基于这个模块实现动态TCP反向代理的功能,目前没有好的实现思路,请问有好的建议吗?
>
> 需求大致是这样的:
>
> stream {
> server {
> listen 22222;
>
> content_by_lua_block{
> local redis = ...
>
> //请求的uri,比如some.target.domain.com,目前好像只能获取到remote_addr
> local backend_key = ngx.var.req_uri
>
> ngx.var.real_backend=redis.get(backend_key)
> }
>
> proxy_pass $real_backend
你这里有两个问题:
1. 和 http 子系统类似,这里只能有一个 content handler 用于负责生成响应。而你这里一个 server 同时配置了
content_by_lua_block {} 和 proxy_pass 这两个不同的 content handler.
2. 不同于 http 子系统,stream 子系统并不支持 nginx 变量。
一个建议:
建议直接在 content_by_lua* 里面通过下游 cosocket 和上游 cosocket 进行数据的转发,而不通过
ngx_stream_proxy_module.
Regards,
-agentzh