nginx利用ngx_stream_core_module实现四层的负载均衡服务。作为四层负载均衡nginx和lvs的区别在于:
lvs工作于内核层,相对来说效率更高,性能更强;
nginx工作于用户空间;
lvs不会受到套接字数量的限制;
nginx作为四层负载均衡也需要监听套接字来和客户端,后台服务器进行连接,会受到套接字数量限制,不过这个问题可以通过keepalive长连接来避免;
一、实验环境
此次实验基于三台服务器实现,分别负载httpd服务、ssh服务和mysql服务:
-
nginx四层负载均衡器:192.168.11.100
-
内网真实服务器RS-1:192.168.11.201;
-
内网真实服务器RS-2:192.168.11.202;
二、实验配置步骤:
内网服务器配置:
-
内网两台服务器分别安装nginx、和mysql服务,并开启相关服务
yum install -y nginx mariadb-server
nginx负载均衡器配置:
-
修改/etc/nginx/nginx.conf配置文件:
#定义http、mysql和ssh的负载均衡集群并调用,默认算法为rr(轮询)# stream { upstream websrvs { server 192.168.11.201:80; server 192.168.11.202:80; } upstream mysqlsrvs { server 192.168.11.201:3306; server 192.168.11.202:3306; } upstream sshsrvs { server 192.168.11.201:22; server 192.168.11.202:22; } server { listen 80; proxy_pass websrvs; } server { listen 10022; proxy_pass sshsrvs; } }
-
测试是否可行:
原创文章,作者:王子豪,如若转载,请注明出处:http://www.178linux.com/79335