负载均衡,英文 名称为Load Balance,指由多台服务器以对称的方式组成一个服务器集合,每台服务器都具有等价的地位,都可以单独对外提供服务而无须其他服务器的辅助。通过某种 负载分担技术,将外部发送来的请求均匀分配到对称结构中的某一台服务器上,而接收到请求的服务器独立地回应客户的请求。负载均衡能够平均分配客户请求到服 务器阵列,借此提供快速获取重要数据,解决大量并发访问服务问题,这种集群技术可以用最少的投资获得接近于大型主机的性能。
1.在本机准备2个tomcat 并修改端口号,避免启动出现冲突
,次操作在以上已经解答:tomcat:windows下启动多个tomcat.note
2、把tomcat下所有webapps下的文件全部删掉,以免影响运行
3、把把maven打包的项目或者是tomcat部署的项目拿出去,就是拿出tomcat外面去,
以便供集群服务器共享。如图
修改所有tomcat下apache-tomcat-7.0.33\conf\server.xml文件
在
下面添加如图:
4、安装nginx,下载地址:http://nginx.org/en/download.html
下载解压文件,注意:nginx路径不能为中文
启动命令 :start nginx.exe
快速停止和关闭:nginx -s stop
正常停止和关闭:nginx -s quit
重启: nginx -s reload
启动nginx ,查看是否成功就看进程中是否有nginx
在浏览器中输入localhost就会展示nginx的主页面
配置conf\nginx.conf
在#gzip on;下面添加:
upstream tomcat{ #tomcat是变量名字,可以随意改
server 127.0.0.1:8080 weight=1; #本地端口服务器 weigth 是对应的比重
server 127.0.0.1:8088 weight=1; #本地端口服务器
ip_hash; #ip哈希化
}
修改:location / {为:
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat; #指向你的服务器群
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_connect_timeout 1;
proxy_read_timeout 1;
proxy_send_timeout 1;
}
测试:启动tomcat:
测试成功,
5、测试nginx到底是访问的哪个tomcat呢?
使用浏览器F12查看cookie
首先要设置tomcat的server.xml
大概在105行左右
在
后面添加jvmRoute = “tomcat8088” 代表是tomcat8088端口
如图:
6、访问时发现session不一样,session 丢失了,这样的负载均衡有bug啊
解决这个问题,可以配redis使用
redis就是一个大大的Map,做session共享。
7、nginx负载均衡的5种策略(转载)
nginx负载均衡的5种策略.note
8、首先安装redis,并且需要在tomcat 的lib下配置和redis的整合jar包,放在tomcat的lib下面
解压jar包
在命令64bit下启动:
输入redis-server.exe redis.conf
启动
然后在启动一个客户端:redis-cli.exe -h 127.0.0.1 -p 6379
测试:
测试redis没有问题,现在就配置redis和tomcat结合
把这3个jar包放到tomcat的lib下面
备注:jar已上传到博客园中,有需要的点击下载
编辑${TOMCAT_HOME}/conf/context.xml,在context中加入
port="6379"
database="0"
maxInactiveInterval="60" />
host和port为redis的ip和端口
tomcat会使用redis来托管session。
database:代表是第一个数据库
所有配置就已经配置完了,然后是启动,启动的循序是先启动 redis—>tomcat---->nginx
访问页面是session共享,并且两台机器均衡工作