Nginx 均衡负载
Nginx集群配置
首先要把3个虚拟主机的域名(a.ieread.com、b.ieread.com、c.ieread.com)都指向到nginx机的公网ip上。 然后还是修改nginx的配置文件nginx.conf: 配置文件中upstream段还是保持不变,依旧是3个tomcat集群机的地址及负载因子:
1 2 3 4 5 |
|
因为有3个应用,所以应该有3个server段,这里只写其中一个,其他两个只需要修改一下server_name即可:
1 2 3 4 5 |
|
proxy_set_header是nginx的http代理模块中的一个指令。 在nginx中的默认proxy是只能对后面real server做端口转发的,而不能做域名转发,即默认的是: proxy_set_header Host $proxy_host; 我们要通过域名转发就必须改为: proxy_set_header Host $host;
最后修改tomcat的配置文件server.xml,主要是配置虚拟主机:
1 2 3 4 5 |
|
3台集群机均改成上面一样的。
Tomcat集群配置 运行多个tomcat需要修改每个tomcatd的端口。 在tomcatconfserver.xml这里面对涉及的端口进行修改
sesession 共享 通过上面的配置,我们已经完成了nginx+tomcat的负载均衡,接下来我们要考虑如何让book.ieread.com下的项目session同步。
这里我使用的是memcached-session-manager;
首先,我们需要下载JAR包:javolution-5.4.3.1.jar,msm-javolution-serializer-1.4.1.jar,memcached-session-manager-1.4.1.jar http://code.google.com/p/memcached-session-manager/downloads/list
下载JAR包:memcached-2.5.jar http://code.google.com/p/spymemcached/downloads/list
将4个jar包放在tomcat的lib包中。 然后修改tomcatd的service.xml文件,添加红色部分配置。
1 2 3 4 5 |
|
测试sesession 共享 添加msem.jsp文件
1 2 3 4 5 |
|
Http://localhost:8080/msem.jsp可以看见不同的项目具有相同的sesessionID。