环境准备:
1、这里我准备了两台服务器
一台nginx : 112.*.*.62(这是ip) centos 7.2
一台tomcat :119.*.*37(这是ip) centos7.2
其实应该准备两台tomcat的,这样看效果能看的清楚点,不过这也无伤大雅。
nginx配置
修改了/etc/nginx/nginx.conf 文件,如下,如果想多转发到其他的tomcat的话,就可以在upstream配置多台tomcat的ip
再修改default.conf文件,如下
测试
先直接访问tomcat服务器,提示如下,说明已经成功访问到tomcat中了(不要在意这个404报错,这个错误正是tomcat提示出来的)
然后再访问nginx服务器,提示也如下
说明nginx已经成功把请求转发到tomcat中了,这个错误就是tomcat返回给nginx,然后再返回给客户端的。
负载均衡策略
1、轮询
这种是默认的策略,把每个请求按顺序逐一分配到不同的server,如果server挂掉,能自动剔除。
upstream futest.com{
server 192.168.99.1:80;
server 192.168.99.2:80;
}
2、最少连接
把请求分配到连接数最少的server
upstream futest.com {
least_conn;
server 192.168.99.1:80;
server 192.168.99.2:80;
}
3、权重
使用weight来指定server访问比率,weight默认是1。以下配置会是server2访问的比例是server1的两倍。
upstream futest.com{
server 192.168.99.1:80 weight=1;
server 192.168.99.2:80 weight=2;
}
4、ip_hash
每个请求会按照访问ip的hash值分配,这样同一客户端连续的Web请求都会被分发到同一server进行处理,可以解决session的问题。如果server挂掉,能自动剔除。
upstream futest.com {
ip_hash;
server 192.168.99.1:80;
server 192.168.99.2:80;
}
ip_hash可以和weight结合使用。