工作之余,考虑到实际项目存在集群的需要,为此以Nginx+Tomcat+Memcached的集群方式进行实践。
本次实践主要从以下几个步骤实施:
一、同台电脑多台Tomcat服务器的准备(本次实践以一台电脑为基础环境);
二、Nginx部署
三、Memcached的安装部署
四、Tomcat相关jar包的下载
五、对应配置文件的修改(Tomcat、Nginx)
六、Tomcat(测试案例)、Nginx、Memcached启动
七、对实际测试案例进行调用查看
一、多台Tomcat服务器的准备
1、tomcat文件进行多份复制,可分别命名为 tomcat1和tomcat2(本次tomcat版本为7.0.62);
2、对tomcat1和tomcat2中的server.xml进行调整,调整内容主要是三处端口和一处添加:
#将默认8005更改为8006、8007
<Server port="8005" shutdown="SHUTDOWN">
#将默认8080更改为8090、8100
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
#将默认8009更改为8010、8011
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
#分别添加jvmRoute="tomcatRoute1"和jvmRoute="tomcatRoute2" 方便后期session测试
<Engine name="Catalina" defaultHost="localhost" >
3、修改好之后,分别运行tomcat1和tomcat2查看是否运行正常。
二、Nginx部署
1、下载nginx安装包(本次安装版本为nginx-1.8.0),解压缩到固定目录(本次解压缩在D:\nginx-1.8.0\)
2、启动Nginx:先进入D:\nginx-1.8.0\目录,cmd命令行执行:start nginx.exe,弹出屏会一闪而逝
3、检验nginx运行情况,cmd命令行执行tasklist /fi "imagename eq nginx.exe",可查看到以下图示结果:

4、在浏览器输入http://localhost,可以看到Nginx的欢迎页。

5、检验成功后,关闭nginx,cmd命令行执行nginx.exe -s stop.
6、nginx基础环境完成,配置下一步进行。
三、memcached安装
1、下载memcached安装包,本次测试选择的是memcached-1.2.6-win32-bin.zip
2、解压到调试目录下面,本次选择压缩在D盘,D:\memcached
3、输入安装命令memcached.exe –d install
4、输入执行命令memcached -d start
5、执行任务查询命令tasklist /fi "imagename eq memcached.exe",查看memcached是否运行正常。

6、memcached的默认端口为11211,也可通过执行命令来查询netstat -ano|findstr "8056"

7、memcached的安装工作基本完成。
接下来,就是针对jar的添加以及配置的调整。
四、jar包的版本选择和下载
1、根据实际环境进行jar的匹配选择,本次选择的jar包主要包括:

2、重点是memcached-session-manager-1.8.3.jar和memcached-session-manager-tc7-1.8.3.jar的选择,要根据实际环境的tomcat版本号相匹配
3、将所下载的jar包复制到tomcat的lib目录,记住是两个tomcat!
五、tomcat配置修改
1、进入tomcat的conf目录,打开content.xml文件进行修改
2、修改内容为(新增):
<!-- Uncomment this to disable session persistence across Tomcat restarts -->
<!--<Manager pathname="" />
-->
<!-- ---------------------------以下部分为新增内容--------------------------- -->
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:127.0.0.1:11211"
sticky="false"
requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|ico|jpeg)$"
sessionBackupAsync="false"
sessionBackupTimeout="100"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/>
<!-- ---------------------------以上部分为新增内容--------------------------- -->
3、分别运行tomcat1和tomcat2,查看运行是否正常
4、本次tomcat运行的案例是实际生产项目,端口分别localhost:8090和localhost:8010,运行效果如下:

六、Nginx配置修改
1、进入nginx的conf目录,打开nginx.conf文件进行修改
2、修改内容为(新增和调整):
#----------------以下为新增---------------
upstream localhost {
#ip_hash;
server 127.0.0.1:8090 weight=1;
server 127.0.0.1:8100 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;
#请求转向mysvr 定义的服务器列表
proxy_pass http://localhost;
proxy_redirect default;
proxy_connect_timeout 5;
}
#error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
#
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
#----------------以上为内容调整--------------
}
3、nginx.conf文件修改中,主要添加和修改的内容必须处于http {}内,不然会出现以下的error log提示
"upstream" directive is not allowed here in D:\nginx-1.8.0/conf/nginx.conf:
4、修改完配置后,在nginx目录的命令行下执行start nginx.exe,再执行tasklist|findstr "nginx.exe"
5、查看执行情况如下:

6、在浏览器打开localhost/shanhong,查看集群是否成功

七,集群效果验证
1、输入账号、密码登陆进入后,查看session情况如下:

2、第一次打开选择n1.tomcatRoute1,调用tomcat1
3、再次打开localhost/shanhong/,登陆进入后,再次查看session情况如下:

4、根据之前配置的集群分配方式,分别调用tomcat1和tomcat2
5、关闭tomcat1或者tomcat2,仍可继续访问
至此,本次采用Nginx+Tomcat+Memcached实现集群的方式部署成功。
如有需要本次调试中所需要的jar,请本文下方留email。
本文详细介绍了使用Nginx、Tomcat和Memcached搭建集群的过程,包括多实例Tomcat的配置、Nginx和Memcached的部署、相关jar包的下载与配置,以及最终的集群效果验证。

706

被折叠的 条评论
为什么被折叠?



