Nginx之TCP/UDP调度器(简单)

1 问题
使用Nginx实现TCP/UDP调度器功能(四层),实现如下功能:
  • 后端SSH服务器两台
  • Nginx编译安装时需要使用–with-stream,开启ngx_stream_core_module模块
  • Nginx采用轮询的方式调用后端SSH服务器
2 方案

使用4台RHEL7虚拟机,其中一台作为Nginx代理服务器,该服务器需要配置两块网卡,IP地址分别为192.168.4.5和192.168.2.5,两台SSH服务器IP地址分别为192.168.2.100和192.168.2.200。客户端测试主机IP地址为192.168.4.10。如图-2所示。
在这里插入图片描述
图-2

3 步骤

实现此案例需要按照如下步骤进行。
步骤一:部署支持4层TCP/UDP代理的Nginx服务器

1)部署nginx服务器
编译安装必须要使用–with-stream参数开启4层代理模块。

[root@proxy ~]# yum -y install gcc pcre-devel openssl-devel        //安装依赖包
[root@proxy ~]# tar  -xf   nginx-1.12.2.tar.gz
[root@proxy ~]# cd  nginx-1.12.2
[root@proxy nginx-1.12.2]# ./configure   \
> --with-http_ssl_module        \                        //开启SSL加密功能
> --with-stream                                       //开启4层反向代理功能
[root@proxy nginx-1.12.2]# make && make install           //编译并安装

步骤二:配置Nginx服务器,添加服务器池,实现TCP/UDP反向代理功能

1)修改/usr/local/nginx/conf/nginx.conf配置文件

[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
stream {
    
    
            upstream backend {
    
    
               server 192.168.2.100:22;            //后端SSH服务器的IP和端口
               server 192.168.2.200:22;
}
            server {
    
    
                listen 12345;                    //Nginx监听的端口
                 proxy_pass backend;
             }
}
http {
    
    
.. ..
}

2)重新加载配置

[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload
#请先确保nginx是启动状态,否则运行该命令会报错,报错信息如下:
#[error] open() "/usr/local/nginx/logs/nginx.pid" failed (2: No such file or directory)
3)客户端使用访问代理服务器测试轮询效果
[root@client ~]# ssh 192.168.4.5 -p 12345            //使用该命令多次访问查看效果

猜你喜欢

转载自blog.csdn.net/weixin_45942735/article/details/104567477