负载均衡
负载均衡能实现的应用场景一: 四层负载均衡
所谓四层负载均衡指的是OSI七层模型中的传输层,那么传输层Nginx已经能支持TCP/IP的控制,所以只需要对客户端的请求进行TCP/IP协议的包转发就可以实现负载均衡,那么它的好处是性能非常快、只需要底层进行应用处理,而不需要进行一些复杂的逻辑。
负载均衡能实现的应用场景二:七层负载均衡
七层负载均衡它是在应用层,那么它可以完成很多应用方面的协议请求,比如我们说的http应用的负载均衡,它可以实现http信息的改写、头信息的改写、安全应用规则控制、URL匹配规则控制、以及转发、rewrite等等的规则,所以在应用层的服务里面,我们可以做的内容就更多,那么Nginx则是一个典型的七层负载均衡SLB
四层负载均衡与七层负载均衡区别
四层负载均衡数据包在底层就进行了分发,而七层负载均衡数据包则是在最顶层进行分发、由此可以看出,七层负载均衡效率没有四负载均衡高。
但七层负载均衡更贴近于服务,如:http协议就是七层协议,我们可以用Nginx可以作会话保持,URL路径规则匹配、head头改写等等,这些是四层负载均衡无法实现的。
注意:四层负载均衡不识别域名,七层负载均衡识别域名
Nginx负载均衡与Nginx代理不同地方在于,Nginx的一个location仅能代理一台服务器,而Nginx负载均衡则是将客户端请求代理转发至一组upstream虚拟服务池.
nginx四层和七层代理的实现方式
nginx七层代理的实现方式
http {
upstream servers {
server 192.168.2.1:80; 代理普通的80端口web服务比如nginx自己 httpd等
server 192.168.2.2:8080; 代理tomcat
server 192.168.2.3:80 weight=3; weight关键字表示权重,也就是这个节点
被轮询到的概率会相应提高
server 192.168.2.4:8080 fail_timeout=50; 这个关键字表示失败之后多久进行重连
server 192.168.2.5:80 max_fails=4; 这个关键字表示最大失败次数,也就是失败多少次之后判定进入重连CD
server 192.168.5.90:8080 weight=4 max_fails=3 fail_timeout=30;可以一起用
}
server{
listen 80;
server_name www.abc.com;
location / {
proxy_pass http://servers; 调用集群,记得调用的名称和你上边定义的名称要一样
root html;
}
}
}
nginx四层代理的实现方式
worker_processes 1;
events {
worker_connections 1024;
}
stream {
upstream tcp_proxy {
hash $remote_addr consistent;
server <target_host>:22;
}
server {
listen 2222;
proxy_connect_timeout 1s;
proxy_timeout 10s;
proxy_pass tcp_proxy;
}
}