技术解析

怎么向 nginx 官方提建议
0
1975-02-21 04:09:16
idczone

nginx stream 模块的处理流程如下

http://nginx.org/en/docs/stream/stream_processing.html#preread_phase

在 Preread 阶段 ngx_stream_ssl_preread_module 模块可以从preread buffer中分析出 sni 的请求域名,

从而可以在 stream 模块中,在 tcp 层面转发流量(sni proxy).

但是在 http 流量到达后(假定是另一个 stream server 用来处理 http 流量),stream 模块读取的preread buffer没有模块来分析,

导致 在 stream 模块中无法取得 $host $request_uri $args 等在 http 模块中的常用变量

如果能取到这些变量 stream 大带宽服务器模块的可玩性将大大增加。

其实实现这个并不困难,就是类似于http parser的字符串分析,哪位大神可以实现,也可以向 nginx 提 Pull requests


send email to mailist at http://nginx.org/en/support.html

nginx tcp 代理是不处理应用层协议的,可以基于 stream 模块开发一个处理应用层协议的模块,这个相当于一个新模块了!

意思就是开发一个新模块,类似于 ngx_stream_ssl_preread_module 可以叫 ngx_stream_http_preread_module

那为什么不用 http ?

ssl 承载的不一定是 http 协议,也有可能是 imap, smtp .
官方有 module 的开发文档,你这需求估计只能自己开发,然后自己编译之类的.
https://www.nginx.com/blog/dynamic-modules-development/

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服