-★出爺;3 发表于 2016-12-25 09:26:58

Nginx + Memcached + Tomcat 集群负载均衡


Tomcat准备


使用的Tomcat自行准备
下载地址:http://tomcat.apache.org/
 
Tomcat配置:

 


Memcached安装


1、将安装包memcached-1.2.6-win32-bin解压到X:/目录下面,重命名为memcached。打开命令提示符,进入X:/memcached的目录,输入安装命令“memcached.exe –d install”,安装memcached的windows服务,然后输入“memcached -d start”,以后memcached将作为windows的一个服务每次开机时自动启动。默认端口:11211。
 
2、下面插入介绍一些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 显示帮助
3、memcached的配置
(1)把之前下载的jar包(总共是5个),COPY到两个TOMCAT安装目录下的lib/中。
(2)修改文件$TOMCAT/conf/context.xml(两个tomcat中的都需要修改),在Context标签中加入如下代码:
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:192.168.100.48:11211"
         requestUriIgnorePattern=".*/.(png|gif|jpg|css|js)$"
              sessionBackupAsync="false"
              sessionBackupTimeout="100"
              transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory"
              copyCollectionsForSerialization="false" />
 
 

 
4、五个jar包


 
下载地址:http://code.google.com/p/memcached-session-manager/downloads/list
 


Nginx的安装和配置


1、下载地址:http://nginx.org/en/download.html
2、Nginx的安装
将安装包nginx-1.3.0.zip解压到X:/目录
启动Nginx:进入X:/nginx目录,执行命令:start nginx.exe,弹出屏会一闪而逝。接着输入tasklist /fi "imagename eq nginx.exe",出现如下内容,表示nginx已正常启动啦!在浏览器输入http://localhost,可以看到Nginx的欢迎页。


 
更多Nginx常用命令:
停止Nginx:nginx.exe -s stop|quit
重启Nginx:nginx.exe -s reload
查看Nginx版本:nginx.exe -v
修改文件$NGINX_HOME/conf/nginx.conf:
 
在http标签下,配置upstream属:
 

#设定负载均衡的服务器列表
#weigth参数表示权值,权值越高被分配到的几率越大
upstream tomcat_servers{
server 192.168.100.48:8080 weight=5;
server 192.168.100.48:8081 weight=1;
}
 
在http标签下的server标签中,做适当的修改:
 

server {
listen       80;
server_namelocalhost;
location / {
root   html;
indexindex.jsp;
#表示代理主机
proxy_pass      http://tomcat_servers;
proxy_set_headerHost $host;
proxy_set_headerX-Real-IP$remote_addr;
proxy_set_headerX-Forwarded-For $proxy_add_x_forwarded_for;
}
}
 
 


session测试


在tomcat/webapp/下建立test文件夹
在test文件夹下建立WEB-INF文件夹
在WEB-INF文件夹下建立web.xml文件
在test下建立index.jsp文件
 
Index.jsp内容:

<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
session.removeAttribute("search_alert");
%>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="<%=basePath %>" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>session 共享操作</title>
</head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> ID " + session.getId()+"<br>");// 如果有新的 Session 属性设置
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}out.print("<b>Session 列表</b>");Enumeration e = session.getAttributeNames();
while (e.hasMoreElements()) {
String name = (String)e.nextElement();
String value = session.getAttribute(name).toString();
out.println( name + " = " + value+"<br>");
System.out.println( name + " = " + value);
}
%>
<form action="index.jsp" method="POST">
名称:<input type=text size=20 name="dataName">
<br>
值:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>
 
Web.xml内容:
 

<?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">
<display-name>springMvc</display-name>
<!-- spring config -->

<welcome-file-list>
<welcome-file>/index.jsp</welcome-file>
</welcome-file-list>
</web-app>
 
页: [1]
查看完整版本: Nginx + Memcached + Tomcat 集群负载均衡