【发布时间】:2019-02-08 18:04:43
【问题描述】:
我使用 NGINX 作为反向代理,在发送到上游服务器之前,我需要将原始传入端口注入到实际数据包 (TCP/UDP) 有效负载中。我正在尝试使用 NGINX 的 JS 流模块 (ngx_stream_js_module) 来实现这一点。
这里是配置文件:
#nginx.conf
stream {
js_include ngin.js;
server {
listen 2007;
listen [::]:2007 udp;
js_filter filterfn;
proxy_pass ais_listeners;
}
upstream ais_listeners {
server localhost:1111;
}
}
和JS文件:
#ngin.js
function filterfn(s){
var streamVars = s.variables;
var j = JSON.stringify(streamVars );
s.log(j);
s.on('upload', function(data,flags){
s.send(streamVars.port + ',' + data, flags);
});
}
streamVars.port 当然没有定义。
数据被注入到流中,但我设法使用的唯一变量是:
s.remote_port
和
s.pid
尽管我搜索了很多,但我找不到可用流变量的参考。我还尝试使用以下方法记录它们:
var j = JSON.stringify(streamVars )
其中记录:null
谢谢,
克里斯
【问题讨论】:
标签: nginx