浏览 6.6k
nginx默认不自带stream模块
操作系统版本:CentOS Linux release 7.3.1611 (Core)
nginx版本:1.13.3
nginx从1.9.0版本开始,新增了ngx_stream_core_module模块,使nginx支持四层负载均衡。默认编译的时候该模块并未编译进去,需要编译的时候添加--with-stream,使其支持stream代理。一、查看nginx是否有stream模块
nginx -V
configure arguments: --prefix=/opt/elap/embedded --conf-path=/opt/elap/conf/nginx/nginx.conf --http-log-path=/var/log/elap/nginx/access.log --error-log-path=/var/log/elap/nginx/error.log --with-http_ssl_module --with-http_stub_status_module --with-ipv6 --with-debug --with-ld-opt=-L/opt/elap/embedded/lib --with-cc-opt='-L/opt/elap/embedded/lib -I/opt/elap/embedded/include'
二、编译nginx添加模块
下载nginx的源码包到/usr/local/目录下,解压并进入目录
执行configure命令(其他命令参数不变,保证环境不被影响,最后添加stream模块)
./configure --prefix=/opt/elap/embedded --conf-path=/opt/elap/conf/nginx/nginx.conf --http-log-path=/var/log/elap/nginx/access.log --error-log-path=/var/log/elap/nginx/error.log --with-http_ssl_module --with-http_stub_status_module --with-ipv6 --with-debug --with-ld-opt=-L/opt/elap/embedded/lib --with-cc-opt='-L/opt/elap/embedded/lib -I/opt/elap/embedded/include' --with-stream
make(生成二进制文件在../objs/nginx下)
三、替换nginx二进制文件
停掉nginx,备份原本的nginx二进制文件后,把 ../objs/nginx二进制文件拷贝到/opt/elap/embedded/sbin/目录下,启动nginx,使用nginx -V查看模块是否编辑进去,查看服务是否正常
四、增加负载均衡配置
首先在stream段中使用include包含的多个upstream模块配置文件,在conf文件夹中创建一个conf.d文件,将多个子配置文件写入,针对不同的协议有不同的配置,保证转发数据源IP不变,具体配置如下所示:
tcp配置如下:
upstream access_log_1532 {
server 1.1.1.1:1532 weight=2;
server 1.1.1.2:1532 weight=2;
server 1.1.1.2:1532 weight=2;
}
server {
listen 1532;
proxy_pass access_log_1532 ;
proxy_responses 0;
}
udp配置如下:
upstream access_log_1532 {
server 1.1.1.1:1532 weight=2;
server 1.1.1.2:1532 weight=2;
server 1.1.1.2:1532 weight=2;
}
server {
listen 1532 udp;
proxy_pass access_log_1532 ;
proxy_bind $remote_addr transparent;
proxy_responses 0;
}

按点赞数排序
按时间排序
微信公众号
加入微信群