目标构思图:
目标实现:拟访问一个网站http://192.168.5.199:8080/edu/8080.html然后将他们平均分配到服务器的8080、8081的端口中去,以达到负载均衡的效果
准备工作:(一)准备两台tomcat服务器,一个是8080端口一个是8081端口
(二)在两台tomcat的webapps的目录里面,都新建一个edu的文件夹,然后在里面统一新建名称一样的html测试文件,为了测试效果,两台服务器的html文件内容不要一样,8080端口的就写8080端口,8081就写8081
接下来测试一下!!!
8080端口的服务器
8081端口的服务器
1、准备工作完成之后 就可以配置nginx的负载均衡了
在http模块添加以下负载均衡语句
upstream myserver { #起一个服务名为myserver
server 192.168.5.199:8080; #添加负载均衡添加服务列表
server 192.168.5.199:8081; #添加负载均衡添加服务列表在server监听的80端口添加以下语句
location / {
proxy_pass http://myserver; #添加刚才起的服务名字myserver
}
1.1、重启服务器的配置文件
cd /usr/local/nginx/sbin/ #切换到sbin目录下
./nginx -s reload #重启nginx的配置文件
1.2、测试效果!正确的效果就是现在是8080,在刷新一下就是8081了,这就实现了我们负载均衡的效果,就是合理的分配资源,给8080端口分配一个然后给8081端口分配一个,这就是nginx的负载均衡的效果!
刷新一下变成了8081
1.3、nginx分配服务器策略
第一种 轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动删除
第二种 weight
weight代表权重,默认为1,权重越高被分配的客户端越多
第三种 hash
每个请求按访问的ip的hash结果分配,这样每个访问固定访问一个后端服务器,可以解决session的问题,例如你第一次访问的是8080端口的话那你下次访问还是8080端口,如果你第一次访问的是8081端口的话那你下次访问的也是8081端口
upstream myserver {
ip_hash
server 192.168.5.199:8080;
server 192.168.5.199:8081;
}
第四种 fair(第三方)
按照后端服务器的响应时间来分配请求,响应时间短的优先分配