Bootstrap

nginx四层转发应用

默认使用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的监听端口成功转发到了后端服务

;