需要用到:
nginx 官网地址:http://nginx.org/ 来做反向代理 Windows版本下载地址:http://nginx.org/en/download.html
tomcat 官网:http://tomcat.apache.org/
memcached 官网:http://memcached.org/ 用memcached实现session共享
以我的为例,我用的tomcat版本是 apache-tomcat-7.0.68
(1)、第一处端口修改
<!-- 修改port端口:18888 两个tomcat不能重复,端口随意,别太小-->
<Server port="18888" shutdown="SHUTDOWN">
(2)、第二处端口修改
<!-- port="28888" tomcat监听端口,随意设置,别太小 -->
<Connector port="28888" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
(3)、第三处端口修改
<Connector port="8888" protocol="AJP/1.3" redirectPort="8443" />
其他tomcat配置一样, 不同的tomcat的端口别重复,这样能保证启动起来。
1、解压缩包(我的版本是稳定版1.8.1)
2、打开conf打开nginx.conf进行配置(nginx作为前端反向代理服务器的配置),在#gzip on这句代码之后加上
<!--根据ip计算将请求分配各那个后端tomcat,许多人误认为可以解决session问题,其实并不能。 -->
<!--同一机器在多网情况下,路由切换,ip可能不同-->
upstream localhost {
server localhost:8088 weight=1;
server localhost:8888 weight=1;
}
可以修改端口号:listen 后面的数字保证端口号不能重复
location的配置:
3、启动nginx
启动DOS环境,进入nginx的目录,输入start nginx 启动
如果更改了nginx.conf文件输入nginx -s reload 重新加载文件,再输入nginx -t看文件代码是否有问题,如出现上图所示则没有问题。然后再次start nginx启动nginx;
4、验证配置与测试负载均衡
首先测试nginx配置是否正确,测试命令:nginx -t (默认验证:conf\nginx.conf),也可以指定配置文件路径。
其次验证tomcat,启动两个tomcat,查看是否成功启动。
这里我在tomcat下面布置了项目MyWebTest,启动tomcat后在浏览器输入地址,显示如下图:
最后验证配置负载均衡设置,输入地址:http://localhost:86/MyWebTest/index.jsp,出现如下两种情况:
至此window下nginx+tomcat负载均衡配置结束,关于tomcat Session的问题通常是采用memcached;如果tomcat过多不建议session同步,server间相互同步session很耗资源,高并发环境容易引起Session风暴。请根据自己应用情况合理采纳session解决方案。
1、Memcached配置需要下载以下jar包并放在tomcat的lib目录下
2、配置tomcat
在tomcat中conf目录下的context.xml,在<Context>标签中加入以下代码即可
<!--n1:localhost:11211中的11211与memcached端口号一致(它的默认端口号为11211)-->
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:localhost:11211"
requestUriIgnorePattern=".*\.(png|gif|jpg|css|js)$"
sessionBackupAsync="false"
sessionBackupTimeout="100"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
copyCollectionsForSerialization="false" />
3、memcached的下载安装
(1)如果你的机器是windows系统,需要从网上下载一个windows版本的
(2)解压memcached安装包,启动DOS环境,进入memcached的目录,输入memcached.exe -d install命令安装memcached
(3)、然后输入memcached.exe -s start启动memcached
4、验证是否成功,session是否共享
以下是我的部分测试代码:
输入地址:http://localhost:86/MyWebTest/index.jsp查看是否达到预期效果。