目录
1.负载均衡介绍
四层负载均衡
所谓四层负载均衡是指OSI七层模型中的传输层, 那么传输层Nginx已经支持TCP/IP的控制, 所以只需要对客户端的请求进行TCP/IP协议的包转发就可以实现负载, 那么他的好处是性能非常快, 只需要底层进行应用处理,而不需要进行一些复杂的逻辑.
七层负载均衡
七层负载均衡是在应用层,那么他可以完成后很多应用方面的协议请求,
当然四层有四层的好处,七层七层的好处,四层就不支持协议的转发,(http,https,DNS等)只支持IP,但是它的速度快.
应用层虽然没有四层负载快,但是支持很多功能,比如说他支持http信息的改写、头部信息的改写、(意识是,七层代理着用户往后请求的时候把我们用户请求的头部信息加上,长连接协议也可以修改等)、
安全应用规则控制、URL匹配规则控制、以及转发、rewrite等一些规则,
所以在应用层的服务里面,可以做的内容就更多了。Nginx是一个典型的七层负载均衡四层和七层的区别
四层负载均衡数据在底层就进行了分发,而七层负载均衡数据包则是在最顶层进行分发,由此可以看出,七层负载均衡效率没有四层负载均衡高。
但是七层负载均衡更贴近于服务,如HTTP协议就是七层协议,我们可以用Nginx可以作会话保持,URL路径规则匹配,head头改写等等,这些都是四层负载均衡无法实现的。注意:四层负载均衡不识别域名,七层负载均衡识别域名
2.nginx的配置文件
user nginx nginx; #制定nginx 运行的用户名和用户组 worker_processes 2; #nginx 进程数 建议设置成 CPU几核 这里设置成几 #error_log logs/error.log; 全局错误日志类型 【debug| info|notice | warn| error|alert|crit 】级别从低到高 #error_log logs/error.log notice; #error_log logs/error.log info; #pid logs/nginx.pid; nginx 进程文件 events { #参考事件模型 use epoll; worker_connections 65535; #单个进程最大连接数 最大连接数 = 连接数* 进程数 根据硬件调整 只要别让 cpu 100% } http { upstream westos{ server 172.25.70.2:80; server 172.25.70.3:80; server 172.25.70.1:8080 backup; } include mime.types; #文件的扩展名和映射表 default_type application/octet-stream; #默认的文件类型 } server { listen 80; server_name www.westos.org; location / { proxy_pass http://westos; } } }
3.实验
在nginx官网下载 在线安装预构建的nginx
[Unit] Description=The NGINX HTTP and reverse proxy server After=syslog.target network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStartPre=/usr/local/nginx/sbin/nginx -t ExecStart=/usr/local/nginx/sbin/nginx ExecReload=/usr/local/nginx/sbin/nginx -s reload ExecStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target
daemon-reload: 重新加载某个服务的配置文件
auto为默认工作进程与cpu核心数有关(本机为双核cpu)修改最大连接数
负载均衡
测试
添加server1为备用http主机
在真机中添加地址解析/etc/hosts
172.25.13.1 www.westos.org
暂停server2、3的http 访问域名自动跳转到8080端口