做了一个nginx+tomcate+Session 的负载均衡的tomcat集群,tomcat是用的6.0,nginx用的是nginx-1.1.11。测试的目的是看看访问的压力分布和session共享。先看看测试效果。
我在nginx中的nginx.conf中配置的访问权重。是
-
upstream 127.0.0.1 {
-
-
#weigth参数表示权值,权值越高被分配到的几率越大
-
-
server 127.0.0.1:8080 weight=1;
-
-
server 127.0.0.1:8081 weight=1;
-
-
}
1:1的,所以基本上访问是一次到tomcat1,下次到tomcat2.所以可以看到负载被分配到两个tomcat中去了。在两个服务器中,session也是一样的, 所以session也是共享了。
下面看配置:
下载tomcat就不用说了,主要说里面的server.xml的配置
tomcat1:
tomcat2:
要注意上面红色地方的不同。
下面配置nginx.conf.在#gzip on;下配置
-
#gzip on;
-
-
#设定负载均衡的服务器列表
-
-
upstream 127.0.0.1 {
-
-
#weigth参数表示权值,权值越高被分配到的几率越大
-
-
server 127.0.0.1:8080 weight=1;
-
-
server 127.0.0.1:8081 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://127.0.0.1;
-
}
listen 80;的端口也可以自定义,如果你机子上有占用了80,那就改一下。
上面绿色的地方是对应的。
还有一个比较重要的就是在工程的web.xml上加一个东西,<distributable/>,请看代码:
-
<?xml version="1.0" encoding="UTF-8"?>
-
<web-app version="2.5"
-
xmlns="http://java.sun.com/xml/ns/javaee"
-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
-
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
-
<welcome-file-list>
-
<welcome-file>index.jsp</welcome-file>
-
</welcome-file-list>
-
<distributable/>
-
</web-app>
测试一下,先建立一个jsp页面,看代码:
-
<body>
-
<%
-
-
//HttpSession session = request.getSession(true);
-
-
System.out.println(session.getId());
-
-
out.println("<br> SESSION ID:" + session.getId()+"<br>");
-
-
// 如果有新的请求,则添加session属性
-
-
String name = request.getParameter("name");
-
-
if (name != null && name.length() > 0) {
-
String value = request.getParameter("value");
-
session.setAttribute(name, value);
-
}
-
-
out.print("<b>Session List:</b>");
-
Enumeration<String> names = session.getAttributeNames();
-
while (names.hasMoreElements()) {
-
String sname = names.nextElement();
-
String value = session.getAttribute(sname).toString();
-
out.println( sname + " = " + value+"<br>");
-
System.out.println( sname + " = " + value);
-
}
-
%>
-
</body>
然后运行你http://127.0.0.1/你的web项目名称/index.jsp,就能看到上述效果。再闲了,再测试一下lvs+nginx+tomcat的集群配置和效率
(责任编辑:IT) |