我们实现下通过Nginx实现负载均衡,来把客户端的请求分发达到两个tomcat;
准备2个tomcat
启动tomcat
运行容器
宿主机里home目录下新建tomcat1和tomcat2目录,复制容器里conf,webapps到宿主机
docker cp 容器id:/usr/local/tomcat/conf /home/tomcat/
docker cp 容器id:/usr/local/tomcat/webapps /home/tomcat/
修改两个tomcat的配置,端口分别是8080和9090
以及两个tomcat默认jsp内容改成8080和9090
启动两个tomcat测试
docker run -d --name tomcat1 -p 8080:8080 -v /home/tomcat1/conf/:/usr/local/tomcat/conf/ -v /home/tomcat1/webapps/:/usr/local/tomcat/webapps/ be38ac28efcd
docker run -d --name tomcat2 -p 9090:9090 -v /home/tomcat2/conf/:/usr/local/tomcat/conf/ -v /home/tomcat2/webapps/:/usr/local/tomcat/webapps/ be38ac28efcd
运行没问题就OK;
配置nginx.conf;
在http模块下配置下加
upstream www.feng.com{
server 172.17.0.2:8080 weight=5;
server 172.17.0.3:9090 weight=10;
}
upstream是配置nginx与后端服务器负载均衡非常重要的一个模块,并且它还能对后端的服务器的健康状态进行检查,若后端服务器中的一台发生故障,则前端的请求不会转发到该故障的机器;
weight是权重配置 权重越高 分配到的概率越高;
在http下的server模块
location / {
proxy_pass http://www.feng.com;
index index.html index.htm;
}
proxy_pass配置upstream对象即可;
这样就可以实现负载均衡 我们请求nginx服务器地址,不断刷新请求,会出现9090或者8080内容页面;
上一篇:什么是负载均衡?
下一篇:Nginx负载均衡策略(常用)