Nginx + Memcached + Tomcat 集群

阿丰 2014-05-19

转载自:http://www.oschina.net/question/1014681_107718

前几天搭建了apche+tomcat集群,被大牛拍砖,今天查了点资料,搭建了Nginx + Memcached + Tomcat 集群,与大家分享下:

一:环境

Tomcat7,下载链接:http://tomcat.apache.org/Nginx是nginx-1.2.8,

下载链接:http://nginx.org/en/download.html

Memcached是memcached-1.2.6-win32-bin,下载链接:http://code.jellycan.com/files/memcached-1.2.6-win32-bin.zip

其他所需jar包,如下列表:

memcached-session-manager-1.6.1,memcached-session-manager-tc6-1.6.1(因为Tomcat版本为6.0)

javolution-5.4.3.1,msm-javolution-serializer-1.6.1(准备使用javolution序列化方式)

spymemcached-2.7.3(依赖包),以上jar包在http://code.google.com/p/memcached-session-manager/downloads/list中都可以找到,文档http://code.google.com/p/memcached-session-manager/wiki/SetupAndConfiguration中详细介绍了不同的服务器版本,不同的jar包需求。

二:Tomcat的配置安装

解压拷贝两份tomcat,tomcat1 server.xml配置如下Nginx + Memcached + Tomcat 集群

tomcat2 同理,启动tomcat,启动成功

三:Memcached配置

1、 Memcached的安装

将安装包memcached-1.2.6-win32-bin解压到X:/目录下面,重命名为memcached。打开命令提示符,进入X:/memcached的目录,输入安装命令“memcached.exe –d install”,安装memcached的windows服务,然后输入“memcached -d start”,以后memcached将作为windows的一个服务每次开机时自动启动。默认端口:11211。

下面插入介绍一些memcached的常用命名,也是最基本的命令,不然你启动了memcached,不知道怎么停止这个服务了,也不知道是否已经启动该服务。

(1) 查看memcached的服务是否已经启动:tasklist /fi "imagename eq memcached.exe"

(2) memcached参数使用介绍
-p 监听的端口 
-l 连接的IP地址, 默认是本机 
-d start 启动memcached服务 
-d restart 重起memcached服务 
-d stop|shutdown 关闭正在运行的memcached服务 
-d install 安装memcached服务 
-d uninstall 卸载memcached服务 
-u 以的身份运行 (仅在以root运行的时候有效) 
-m 最大内存使用,单位MB。默认64MB 
-M 内存耗尽时返回错误,而不是删除项 
-c 最大同时连接数,默认是1024 
-f 块大小增长因子,默认是1.25 
-n 最小分配空间,key+value+flags默认是48 
-h 显示帮助
 
2、memcached的配置
(1)把之前下载的jar包(总共是5个),COPY到两个TOMCAT安装目录下的lib/中。
(2)修改文件$TOMCAT/conf/context.xml(两个tomcat中的都需要修改),在Context标签中加入如下代码:

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

memcachedNodes="n1:localhost:11211" //目前机器只安装了一个memcached,所以这里只写一个节点OK。
requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$" 
sessionBackupAsync="false" 
sessionBackupTimeout="100"
transcoderFactoryclass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"//序列化类
copyCollectionsForSerialization="false"/>

四:Nginx的安装和配置

1、Nginx的安装

将安装包nginx-1.3.0.zip解压到X:/目录

启动Nginx:进入X:/nginx目录,执行命令:start nginx.exe,弹出屏会一闪而逝。接着输入tasklist /fi "imagename eq nginx.exe",出现如下内容,表示nginx已正常启动啦!在浏览器输入http://localhost,可以看到Nginx的欢迎页。

Nginx + Memcached + Tomcat 集群 

更多Nginx常用命令:

停止Nginx:nginx.exe -s stop|quit

重启Nginx:nginx.exe -s reload

查看Nginx版本:nginx.exe -v

修改文件$NGINX_HOME/conf/nginx.conf。


#设定负载均衡的服务器列表

 upstream tomcat_server{
server localhost:11080 weight=1;#第一台机器
server localhost:11081 weight=1;#第二台机器
}


server {
listen 80;
server_name localhost;

#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat_server;
}

}

以上部分是需要在nginx.conf中添加的内容。

proxy_pass表示代理主机,upstream tomcat_server{……}配置中配置了代理主机处理请求的两个服务。

上述配置表示:Nginx监听到http://locahost:80的请求之后,转发到代理tomcat_server中的两个服务中的一个,有它们来处理请求。weight表示被分配到权重,weight值越大,处理请求的机会越多。

至此,Nginx的安装与配置结束。

五:测试

测试代码放入tomcat1,2中,启动各个服务

Nginx + Memcached + Tomcat 集群Nginx + Memcached + Tomcat 集群

集群成功

相关推荐