分享

nginx服务器集群的问题及解决方式

 昵称23016082 2015-04-21

服务器集群


      

   

  

 

 nginx前段服务器,同时管理多个后端的服务器,可以使tomcat 或者weblogic等。

但是存在一些问题:

1.后端服务器之间的数据不能共享,如果一个客户机向一个tomcat发送登陆请求,再想另一个tomcat发送了看商品列表的请求,就会出现请求拒绝的情况,需要做到session共享

2.如果这里的nginx服务器挂了,整个服务器集群就会挂。HA:高可用,

3.这里的nginx会出现很多请求和响应都经过nginx,服务器集群会出现瓶颈的情况。 DR:直接路由


问题1解决方式:共享session

需要专门管理session的软件,memcached 缓存服务,可以和tomcat整合,帮助tomcat共享管理session。(就如同数据库连接池中的close方法,用户在调用close方法时不是真的将连接关掉,而是还给数据库连接池。)

memcached 缓存服务,可以和tomcat整合,帮助tomcat共享管理session。 设置多台服务器session共享:

(特别注意,使用memcached需要使用高版本的tomcat7) 

 1.在一台服务器上安装memcached(内存数据库) 

 1、安装libevent 

 2、安装memcached 

 3、启动memcached ./memcached -d -m 128m -p 11211 -l 192.168.198.128 -u root -P /temp/ 

 4、拷贝jar到每个后端服务器tomcat的lib下 

 5、配置tomcat,每个tomcat里面的context.xml中加入

 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" 

 memcachedNodes="n1:192.168.198.128:11211" //ip为mencached安装的服务器的ip,如果安装了多个memcached,需要配置多个ip 

 sticky="false" lockingMode="auto"

 sessionBackupAsync="false" 

 requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" 

 sessionBackupTimeout="1000"

 transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

 />

问题2,3:

使用Lvs(linux virtual server),使用ipvsadm管理 应用程序,Lvs的DR模式直接路由模式,给每一个服务器都配一个VIP(虚拟ip),后端服务器得到请求后直接向客户端响应,不再经过ngix

(详见LVS的DR模式集群配置) 

 为了解决nginx服务器挂了,整个服务器集群就会挂的问题,需要使nginx高可用:keepalived(详见keepalived配置·)

 

 

 

 

 

 

 

 

 

 


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多