什么场景会用到呢
如当数据库在服务器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; } }