nginx stream模块

stream

nginx的stream模块是做四层的代理,但nginx是在应用层,可以简单理解为nginx在用户空间,监听一个端口,建立了一个管道,把来自客户端的请求,分发到服务端。也可以理解为是DNAT操作。不会改变请求内容,也不会做缓存。因为它是四层调度,根本不知道哪些东西需要缓存

简单用法

stream {
    server {
        listen 3306;
        proxy_pass 10.0.0.1:3306;
       }
}

如果后端服务器有多个,也可以使用upstream模块做负载,支持least_conn,least_time,hash,wlc,wrr等调度算法
https://nginx.org/en/docs/stream/ngx_stream_upstream_module.html

stream {
    upstream mysql_test {
      hash $remote_ip consisten;
      server 10.0.0.1:3306;
      server 10.0.0.2:3306;
    }
    server {
        listen 3306;
        proxy_pass mysql_test;
       }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容