nginx的TCP和UDP调度器

Nginx的TCP/UDP调度器

使用Nginx实现TCP/UDP调度器功能,实现:
后端SSH服务器两台
Nginx编译安装时需要使用--with-stream,开启ngx_stream_core_module模块
Nginx采用轮询的方式调用后端SSH服务器

方案
使用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。


步骤一:部署支持4层TCP/UDP代理的Nginx服务器

1)部署nginx服务器
编译安装必须要使用--with-stream参数开启4层代理模块。
# nginx -s stop
# cd #cd后面没有参数,会默认cd到root
[root@proxy ~]# rm -rf /usr/local/nginx/

# cd /root/lnmp_soft/nginx-1.12.2/
# ./configure --with-http_ssl_module --with-stream #开启开启SSL加密功能,开启4层反向代理功能
# make && make install
# nginx -V
---------------------------------------------------------------------------------------------------
步骤二:配置Nginx服务器,添加服务器池,实现TCP/UDP反向代理功能

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

vim /usr/local/nginx/conf/nginx.conf
... ...
stream { #stream{}要在http{}上面添加,必须加载http{}外面,因为它是独立的。
upstream myssh { #myssh这个命名随意
server 192.168.2.100:22; #后端SSH服务器的IP和端口
server 192.168.2.200:22;
}
server {
listen 12345; #nginx监听的端口号可自定义,只要客户端远程ssh -p远程连接时,是这个端口号就行
proxy_pass myssh; #要写上面自定义的名字myssh
}
}


http {
... ...
}

2)重启nginx服务
# nginx -s reload
----------------------------------------------------------------------------------------------------
# ss -atunlp | grep 12345 #查看此监听端口是否已启动
tcp 0 0 0.0.0.0:12345 0.0.0.0:* LISTEN 10652/nginx: master
--------------------------------------------------------------------------------------------------
3)客户端使用访问代理服务器测试轮询效果

客户端验证,ssh -p 12345 192.168.4.5时,进入的界面是web1,退出再ssh时,进入的是web2,说明调度成功。

# ssh -p 12345 192.168.4.5 #-p空格后加的是刚才在配置文件里写的端口号12345

[email protected]'s password:
Last login: Thu Nov 1 10:42:54 2018 from 192.168.2.254
[root@web1 ~]# exit #进入的界面是web1
登出
Connection to 192.168.4.5 closed.

[root@client ~]# ssh -p 12345 192.168.4.5
[email protected]'s password:
Last login: Thu Nov 1 10:43:06 2018 from 192.168.2.254
[root@web2 ~]# #进入的界面是web2

猜你喜欢

转载自www.cnblogs.com/summer2/p/10787922.html