什么是负载均衡?
负载均衡,字面意思其实已经很好理解了就是用来平衡负载的,负载均衡用来解决高并发时的服务器负载过大问题。
负载均衡是由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。均衡负载能够平均分配客户请求到服务器列阵,籍此提供快速获取重要数据,解决大量并发访问服务问题。这种群集技术可以用最少的投资获得接近于大型主机的性能。(次段解释来源https://blog.csdn.net/yuanaili/article/details/81209155 )
nginx 下实现简单的负载均衡模拟
首先我们要安装nginx服务,nginx在负载均衡中担任负载分发的角色是必不可少的。
sudo service nginx start //安装nginx
然后我们准备两个tomcat,改变其中一个tomcat的端口号,模拟我们不同的服务器。
一个tomcat端口号改为8081,一个不变仍为8080.
启动tomcat
然后配置我们nginx的配置文件nginx.conf
在配置文件的http{} 中添加
upstream wth{
server 192.168.5.129:8080;
server 192.168.5.129:8081;
}
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://wth;
}
}
sudo service nginx restart //重启nginx
最后访问localhost可查看效果。
一次访问的是8080,一次访问的是8081,这样我们就实现了简单的负载均衡模拟效果。
nginx配置文件中端口号后面,还可以添加参数用来控制我们的负载情况,下面我来列举几个。
weight称为权重,通过数值比例可以决定哪个服务器的访问概率用来实现我们的实际业务需求
server 192.168.5.129:8080 weight =1;
server 192.168.5.129:8081 weight =1;
down和backup,down控制次服务器不被启动,backup,当其他服务器不启用时启用。
server 192.168.10.129:8080 down;
server 192.168.10.130:8081 backup;
ip_hash,共享session的一种策略,通过ip_hash使请求每次都请求同一个服务器。
server 192.168.10.129:8080;
server 192.168.10.130:8081;
ip_hash;