Nginx + Memcached + Tomcat 集群负载均衡

Tomcat准备

使用的Tomcat自行准备

下载地址:http://tomcat.apache.org/

 

Tomcat配置:
Nginx + Memcached + Tomcat 集群负载均衡_第1张图片
 

Memcached安装

1、将安装包memcached-1.2.6-win32-bin解压到X:/目录下面,重命名为memcached。打开命令提示符,进入X:/memcached的目录,输入安装命令“memcached.exe d install”,安装memcachedwindows服务,然后输入“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 显示帮助

3memcached的配置

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" />

 

 
Nginx + Memcached + Tomcat 集群负载均衡_第2张图片
 

4、五个jar


Nginx + Memcached + Tomcat 集群负载均衡_第3张图片
 

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

 

Nginx的安装和配置

1、下载地址:http://nginx.org/en/download.html

2Nginx的安装

将安装包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 集群负载均衡_第4张图片
 

更多Nginx常用命令:

停止Nginxnginx.exe -s stop|quit

重启Nginxnginx.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_name  localhost;
	location / { 
            root   html;  
            index  index.jsp;
            #表示代理主机			
            proxy_pass        http://tomcat_servers;  
            proxy_set_header  Host $host;  
            proxy_set_header  X-Real-IP  $remote_addr;  
            proxy_set_header  X-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>

 

你可能感兴趣的:(memcached)