主要功能在于:TCP/UDP是在第四层的传输协议,而web是会话层面的应用,所有实现TCP/UDP的调动,可以使得nginx支持更多的运用,比如对ssh。但是 nginx1.9之前只支持http,之后支持tcp/udp,之后可以做任何服务的调度器。调度的过程如下图:
客户端发送请求,nginx代理服务器把客户端发送的请求通过调度,把请求发送给相应的服务器,服务器在处理完请求之后,回应给nginx代理服务器,nginx代理服务器把数据送给客户端。
配置举例:
条件:需要四台主机,客户端,nginx代理服务器,两条被调动的服务器,配置要求按照上图配置。
nginx代理服务器配置
[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 //编译并安装
[root@proxy ~]# vim /usr/local/nginx/conf/nginx.conf
stream {
upstream backend { ----------用于定义集群upstream 并给集群起名
server 192.168.2.100:22; ----------后端SSH服务器的IP和端口
server 192.168.2.200:22;
}
server {
listen 12345; --------Nginx监听的端口,可以自己配置
proxy_connect_timeout 1s;
proxy_timeout 3s;
proxy_pass backend; ------把访问需求交给上面的集群
}
}
[root@proxy ~]# /usr/local/nginx/sbin/nginx -s reload (保证服务已经开启)
客户端测试:
[root@client ~]# ssh 192.168.4.5 -p 12345