是否可以将NON-http连接请求转发到nginx中的其他端口?

tac*_*oth 18 tcp http nginx

我有nginx在我的服务器上运行,监听端口80和433.我知道nginx有多种端口转发方式,允许我转发请求,如:http:// myserver:80/subdir1到某个地址,如:http:// myserver:8888.

我的问题是可以配置nginx,以便我可以将NON -http请求(只是那些普通的TCP连接)转发到其他端口?测试它是否是一个http请求非常容易,因为第一个字节将是"GET"或"POST".这是一个例子.

客户端连接到nginx.客户发送:

一个.HTTP get请求:"GET/HTTP 1.1":HTTP的一些规则

湾 任何无法识别为HTTP标头的字节:将其转发到其他端口,例如888,999等.

技术上可行吗?或者你会建议一种方法来做到这一点?

Sla*_*a V 51

从nginx 1.9.0开始有可能:

http://nginx.org/en/docs/stream/ngx_stream_core_module.html

沿着这些方向的东西(这是最高级别nginx.conf):

stream {
    upstream backend {
        server backend1.example.com:12345;
    }

    server {
        listen 12345;
        proxy_pass backend;
    }
}
Run Code Online (Sandbox Code Playgroud)