添添呼呼叫中心系统crm采用tomcat容器部署,在高并发的情况下,使用nginx作为负载均衡。具体方案如下:
1. 安装nginx
yum -y install nginx
修改nginx配置文件 vim /etc/nginx/nginx.cnf
Upstream 模块 配置负载均衡服务器的信息。
upstream依照轮询(默认)方式进行负载,每一个请求按时间顺序逐一分配到不同的后端服务器。假设后端服务器down掉。能自己主动剔除。尽管这样的方式简便、成本低廉。但缺点是:可靠性低和负载分配不均衡。 ip_hash: 每一个请求按訪问ip的hash结果分配。这样每一个訪客固定訪问一个后端服务器,能够解决session的问题。 fair: 按后端服务器的响应时间来分配请求。响应时间短的优先分配。upstream还能够为每一个设备设置状态值,这些状态值的含义分别例如以下:down 表示单前的server临时不參与负载.weight 默觉得1.weight越大,负载的权重就越大。max_fails :同意请求失败的次数默觉得1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误.fail_timeout : max_fails次失败后。暂停的时间。backup: 其他全部的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。 |
在server下配置所有请求信息都转到负载均衡的服务器列表
Nginx配置缓存静态文件,将项目下的静态文件可以拷贝到nginx的目录下,这样这些静态文件就无需转到后台tomcat服务器下,有效减小后台服务器的请求压力,同时加快前台页面的响应速度。我们配置如下静态文件直接访问下面的目录。检查配置是否成功,打开浏览器,F12 查看静态文件响应的文件头即可。
2. 安装 memcached
安装 : yum -y install memcached
查看配置文件: cat /etc/sysconfig/memcached
启动: /usr/bin/memcached -b -l 127.0.0.1 -p 11211 -m 150 -u root -d
启动参数说明: -d 选项是启动一个守护进程。 -u root 表示启动memcached的用户为root。 -m 是分配给Memcache使用的内存数量,单位是MB,默认64MB。 -M return error on memory exhausted (rather than removing items)。 -u 是运行Memcache的用户,如果当前为root 的话,需要使用此参数指定用户。 -p 是设置Memcache的TCP监听的端口,最好是1024以上的端口。 -c 选项是最大运行的并发连接数,默认是1024。 -P 是设置保存Memcache的pid文件 |
3. 修改tomcat配置文件
将需要的jar包拷贝到tomcat的lib下
在tomcat安装目录下的context.xml文件中加入
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:47.101.172.108:11211" sticky="false" sessionBackupAsync="false" requestUriIgnorePattern=".*.(ico|png|gif|jpg|jpeg|bmp|css|js|html|htm)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory" /> |
在tomcat安装目录下的server.xml文件中加入:
|
不同的tomcat jvmRoute路由不一样,例如tomcat2,tomcat3