Nginx反向代理服务器 + Nginx备用代理服务器+ keepalived 高可用性代理服务器,在两台Nginx服务器上分别安装Keepalived,修改配置文件,一台state设置为MASTER,一台设置为SLAVE,slave不断发送数据包给master,发现master挂掉后,接过代理权,用户几乎发现不了。需要注意,slave发送数据包给master上的Keepalived进程,如果Nginx挂掉而Keepalived没有挂掉,slave仍然认为master服务是正常的。因此需要编写服务器脚本,当发现Nginx挂掉时,马上干掉Keepalived,强制slave负起责任。
tomcat1 Tomcat2 web服务器 +redis,实现session的集中管理;在集群的Tomcat/lib中添加common-pool2-2.4.1.jar jedis-2.6.2.jar tomcat-redis-session-manager1.2-tomcat-7-java-7.jar,在conf/context.xml中添加
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60" />
配置时可能出现的问题:1)如果引用的manager包引用的另外两个jar包版本不一致,需要下载源码编译后重新打包;
2)如果访问报错,redis无法访问,由于redis的安全机制,默认只有127.0.0.1可以访问,修改redis.conf中bind 127.0.0.1改为需要访问的ip;
如果有多个访问者,可以把bind 127.0.0.1注释掉,找到protected-mode yes 改为protected-mode no。
tomcat1 Tomcat2 web服务器 +redis,实现session的集中管理;在集群的Tomcat/lib中添加common-pool2-2.4.1.jar jedis-2.6.2.jar tomcat-redis-session-manager1.2-tomcat-7-java-7.jar,在conf/context.xml中添加
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="localhost"
port="6379"
database="0"
maxInactiveInterval="60" />
配置时可能出现的问题:1)如果引用的manager包引用的另外两个jar包版本不一致,需要下载源码编译后重新打包;
2)如果访问报错,redis无法访问,由于redis的安全机制,默认只有127.0.0.1可以访问,修改redis.conf中bind 127.0.0.1改为需要访问的ip;
如果有多个访问者,可以把bind 127.0.0.1注释掉,找到protected-mode yes 改为protected-mode no。