前提条件:搭建好了docker,(没有的话,就修改tomcat的端口)+我是在服务器上操作的+nginx(我前面的博客都有相关教程)
1.用docker的tomcat镜像启动tomcat服务
docker run -d -p 8088:8080 tomcat docker run -d -p 8089:8080 tomcat2.分别进入docker容器,并在tomcat的webapps目录下创建cxx目录,目录下创建index.html文件,内容分别为server1,server2.
另一个tomcat一样的操作
3.配置nginx
upstream pic{ server 127.0.0.1:8088; server 127.0.0.1:8089; } server{ listen 80; server_name www.superboycxx.top;(自己准备一个域名) location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forward-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Nginx-Proxy true; proxy_pass http://pic; proxy_redirect off; } } 重启nginx轮询方法,先访问server1,然后一直访问server2
如果是将我们的web应用程序这样部署,怎么解决session问题,权限,已认证的信息怎么共享?
发现访问访问着就弹出来了。
我们查看日志发现,通过nginx负载均衡,从一台服务器,访问到另一台去了,那session肯定没有,所以退出了。
=================================================
解决办法:
1.修改nginx配置文件
IP绑定 ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 upstream backserver { ip_hash; server 192.168.0.14:88; server 192.168.0.15:80; } url_hash(第三方) 按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。 upstream backserver { server squid1:3128; server squid2:3128; hash $request_uri; }