一个好的服务器集群必须要做到高并发和负载均衡,服务器集群包括三部分组成:前端服务器,后天服务器,同步数据库。前端服务器最长用的是nginx和LVS,nginx是基于应用层的集群服务器,而LVS是基于tcp协议一下的第四层集群服务器。我们这里选择用nginx做前端服务器。在这里我们不在说怎样安装nginx,不会安装的可以看如何在CentOS安装Nginx?。来安装nginx.
第一步:准备工作
我们需要现在一台虚拟机上安装nginx,在两台虚拟机上安装Tomcat。安装Tomcat步骤如下:
1.下载tomcat安装包。apache-tomcat-7.0.61.tar.gz
2.用命令tar -zxvf apache-tomcat-7.0.61.tar.gz解压安装包。
3.用命令cd apache-tomcat-7.0.61.tar.gz 进入安装包,用命令make && make install来安装tomcat。在安装之前要确定此虚拟机上已经安装了JDK.安装完成后用命令./bin/startup.sh打开tomcat,用killall java来关闭tomcat.
第二步:配置反向代理
上面我们准备好了两个tomcat ,现在我们来配置nginx,
1.首先我们先配置一个upstream,upstream配置在http这个节点里面。如下图配置:
upstream tomcat {
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
server node03:8080 weight=1;
server node04:8080 weight=1;
}
upstream后面名字随便起,然后里面server可以加个权重,当然可接可不接。
check interval=3000 rise=2 fall=5 timeout=1000 type=http;这句是tengine对nginx优化出来的健康检查,。
健康检查结果通过配置location来在网页里查看
location /status {
check_status;
}
2.配置location
我们配置完upstream后我们会配置location来使用upstream
location / {
proxy_pass http://tomcat;
}
以上两步我们就配置好了反向代理。
第三步:安装同步数据库memcached
要做到负载均衡必须要解决的一个问题就是session的共享,这里最好的解决办法就是用缓存数据库。缓存数据库很多,我们这里选择memcached,memcached比较简单。它是以键值对的方式存储的,没有变的概念,只能存字符串。
安装memcached很简单,用命令yum -y install memcached就可以安装成功。
第四步:配置memcached
1.我们要想tomcat自动获memcached存的sesion必须修改tomcat的配置文件,用命令vi conf/context.xml编辑context.xml文件,在文件里加上以下代码:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.126.132:11211"
sticky="false"
lockingMode="auto"
sessionBackupAsync="false"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
sessionBackupTimeout="1000" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
2.上网下载tomcat8.0-memcache-session.rar,解压之后打jar包拷贝到tomcat安装目录下的lib目录下。重启tomcat就可以了。