什么场景会用到呢

如当数据库在服务器A 并且处于内网,此时只有服务器B可以访问A,应用C能访问B 却无法访问A的情况下,可以在服务器B内进行nginx 反向代理,让应用C访问B,B转发给A来实现C通过B访问A

再如如果服务器A的IP地址会变,而B的IP是固定的,应用C不方便动态修改A的IP地址,也可以由B代理A,在检测到A的IP变化时,动态修改B的nginx配置

再如超大内存的云服务器成本有点高,可以在内网自己搭建一个,用外网的那个代理进来

原理与http代理类似,但nginx默认没有编译stream
编译时需要--with-stream, 否则解析stream时会抛出异常 unknown directive  stream  in **/nginx
如:
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module  --with-stream

配置文件,stream与http节点平行


stream {
    #访问本机的82转发到192.168.1.2:81
    server {
        listen 82;
        proxy_pass 192.168.1.2:81;
    }
    #负载均衡与http代理的配置一样
    upstream st {
	server 127.0.0.1:18081;
	server 127.0.0.1:18082;
    }
    server {
        listen 1808;
        proxy_pass st;
    }
}