默认使用yum安装的nginx是没有额外安装的动态模块的,需要自己额外安装
ls /usr/lib64/nginx/modules/
若是不安装stream模块,直接在nginx的配置文件中调用stream模块,重载配置文件的时候会报错识别不到stream功能
安装stream模块
yum install -y nginx-mod-stream
ls /usr/lib64/nginx/modules/
或者也可以将nginx所有的动态模块都安装
yum -y install nginx-all-modules
nginx四层转发配置
我这里配置的是转发到后端的elasticsearch服务中
vi /etc/nginx/nginx.conf
#注意这不是写在http里面的,stream模块跟http模块是同级的关系,http是七层代理,stream是四层转发
stream {
upstream es { #配置负载均衡功能
server 10.1.60.115:9200;
server 10.1.60.118:9200;
}
server {
listen 1800; #监听1800端口,用于接收传输层的 TCP 连接
proxy_pass es; #根据负载均衡规则通过四层转发到后端服务中,即通过tcp/udp端口转发
}
}
在这个四层转发的例子中,我们使用了 stream
块来配置四层转发
优雅重载nginx配置
nginx -s reload
访问一下nginx监听端口看是否能正确转发到后端服务
可以看到四层转发配置是没有问题的,访问nginx的监听端口成功转发到了后端服务