为什么搞nginx负载均衡?
因为能够提升项目的稳定性以及性能
如何实现:
在宿主机里home目录下建两个tomcat1和tomcat2目录,然后复制我们创好的tomcat容器里conf,webapps到宿主机
[root@localhost ~]# docker cp a316209707f2:/usr/local/tomcat/conf /home/tomcat1
[root@localhost ~]# docker cp a316209707f2:/usr/local/tomcat/webapps /home/tomcat1
[root@localhost ~]# docker cp a316209707f2:/usr/local/tomcat/conf /home/tomcat2
[root@localhost ~]# docker cp a316209707f2:/usr/local/tomcat/webapps /home/tomcat2
然后对tomcat1 目录里webapps下的index文件进行修改
把其中body内容去掉 只留8080
同样tomcat2目录webapps下的index修改 只留下9090
同时修改tomcat2目录conf下的server.xml 其中8080端口改成9090
方便后面观察效果
改完后重启tomcat容器
查看其具体ip
docker inspect 容器id
tomcat1 :172.17.0.3
tomcat2 :172.17.0.4
nginx:172.17.0.2
修改nginx.conf指定具体代理的目标服务器
修改default.conf
server.server_name(用户访问URL),server.location指定跳转到目标服务器
负载均衡策略
1.轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
least_conn最少连接
web请求会被分发到连接数最少的服务器上;
负载均衡备份与宕机
备份 backup配置;
其他非backup机器挂掉后,才会请求backup机器;
宕机 down配置;
配置down的服务器不参与负载均衡;这样down所标记的服务器可以安心的升级了;