Total Pageviews

Thursday, 13 June 2024

Nginx之stream模块初体验

 stream模块通过复制流并按照规则进行转发以实现TCP或者UDP代理,进而实现负载均衡.对于https协议,因为没有加解密证书,因此能保证性能和数据安全性,需要Nginx版本不低于1.11.5,且在编译Nginx时需要配置:

1
2
3
--with-stream \
–with-stream_ssl_module \
--with-stream_ssl_preread_module \

参数方可。对于Nginx的编译安装,网上一大把,我这里就不再赘述了,值得一提的时官方提供有编译好的最新版二进制文件,懒得编译安装的童鞋(比如我)可以戳这里:https://nginx.org/en/linux_packages.html(Mainline版为开发版,对于stream模块,直接使用默认的nginx包即可,官方有如下解释:“Main nginx package is built with all modules that do not require additional libraries to avoid extra dependencies.”),二进制安装后Nginx默认配置文件位置为/etc/nginx/nginx.conf

接下来就是配置Nginx了,一种比较比较危险但简单粗暴的配置:

1
2
3
4
5
6
7
8
stream {
    server {
        listen 443;
        ssl_preread on;
        resolver 8.8.8.8;
        proxy_pass $ssl_preread_server_name:$server_port;
    }
}

当然你也可以指定被负载均衡的域名、超时时间、缓冲区大小、IP黑白名单等、限制连接数等等操作,具体如何实现请参看官方文档(stream模块在下方):
https://nginx.org/en/docs/

No comments:

Post a Comment