Apache+Tomcat+Memcached简单总结

来源:互联网 发布:mac没有千牛吗 编辑:程序博客网 时间:2024/06/17 10:39

tomcat的安装

首先我们要做到是部署Java环境,只有安装JDK即可。
这里我已经有下好的JDK了,我使用的是 jdk-7u9-linux-x64.rpm 这个版本直接安装即可。

[root@TomcatA ~]# rpm -ivh jdk-7u9-linux-x64.rpm

tomcat的话我这里也是下载好了 。直接解压就可以用了 apache-tomcat-7.0.55.tar.gz 我们把它放在 /usr/local/

[root@TomcatA ~]# tar xf apache-tomcat-7.0.55.tar.gz -C /usr/local/

一般我们都做个链接

[root@TomcatA local]# ln -sv apache-tomcat-7.0.55/ tomcat

下面修改下环境变量

这个是Java的变量

[root@TomcatA local]# cat /etc/profile.d/java.sh                       JAVA_HOME=/usr/java/latest   PATH=$JAVA_HOME/bin:$PATH    export JAVA_HOME PATH

这个是tomcat的变量

[root@TomcatA local]# cat /etc/profile.d/tomcat.sh                   export CATALINA_HOME=/usr/local/tomcat   export PATH=$CATALINA_HOME/bin:$PATH

好了下面就可以使用Catalina.sh 来启动了

Catalina.sh是服务启动脚本

[root@TomcatA local]# catalina.sh start   Using CATALINA_BASE:  /usr/local/tomcat    Using CATALINA_HOME:  /usr/local/tomcat    Using CATALINA_TMPDIR: /usr/local/tomcat/temp    Using JRE_HOME:  /usr/java/latest    Using CLASSPATH:  /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jarTomcat started.

这样tomcat就启动了。

[root@TomcatA local]# netstat -tnlp   Active Internet connections (only servers)    Proto Recv-Q Send-Q Local Address              Foreign Address            State      PID/Program name  tcp        0      0 0.0.0.0:111                0.0.0.0:*                  LISTEN      1473/rpcbind        tcp        0      0 0.0.0.0:22                  0.0.0.0:*                  LISTEN      1726/sshd          tcp        0      0 127.0.0.1:631              0.0.0.0:*                  LISTEN      1578/cupsd          tcp        0      0 127.0.0.1:25                0.0.0.0:*                  LISTEN      1823/master        tcp        0      0 0.0.0.0:46718              0.0.0.0:*                  LISTEN      1549/rpc.statd      tcp        0      0 :::36716                    :::*                        LISTEN      1549/rpc.statd      tcp        0      0 :::111                      :::*                        LISTEN      1473/rpcbind        tcp        0      0 :::8080                    :::*                        LISTEN      2147/java          tcp        0      0 :::22                      :::*                        LISTEN      1726/sshd          tcp        0      0 ::1:631                    :::*                        LISTEN      1578/cupsd          tcp        0      0 ::1:25                      :::*                        LISTEN      1823/master        tcp        0      0 ::ffff:127.0.0.1:8005      :::*                        LISTEN      2147/java          tcp        0      0 :::8009                    :::*                        LISTEN      2147/java

通过上面的结果我们可以看出该服务启动了3个端口:8080 8009 8005

这里写图片描述

OK,tomcat服务以及可以启用了。


构建Apache+Tomcat+Memcached架构

实验:

前端Apache:192.168.1.200
tomcat节点:192.168.1.201(TomcatA),192.168.1.202(TomcatB)
memcached节点(一主一备实现高可用):192.168.1.201, 192.168.1.202 (机器内存有限,所以就没有用独立的主机了)

实验拓扑图:

这里写图片描述

前端Apache服务器配置

我们这里用到的是Apache的代理模块,由于centos6.5中内核支持该代理模块,因此我们只需要直接yum安装httpd然后再配置文件中加入以下文件即可:

[root@bogon ~]# vim /etc/httpd/conf.d/mod_proxy.conf    <Proxy balancer://lbcluster1>     BalancerMember http://192.168.1.202:8080 loadfactor=1 BalancerMember http://192.168.1.201:8080 loadfactor=1    ProxySet lbmethod=byrequests     </Proxy>ProxyVia Off  ProxyRequests Off  ProxyPass / balancer://lbcluster1/   ProxyPassReverse / balancer://lbcluster1/

memcached服务器

缓存服务器直接在2个节点上yum安装即可,非常简单

yum install memcached

安装好之后启动服务

[root@localhost ~]# service memcached start   Starting memcached:                                        [  OK  ]

可以看到11211端口打开

[root@localhost ~]# ss -tnl   State      Recv-Q Send-Q                      Local Address:Port                        Peer Address:Port     LISTEN      0      128                             :::11211                                :::*    LISTEN      0      128                             *:11211                                *:*  

tomcat端配置

最关键的就是tomcat的配置了
实现会话保持我们用到的是memcached-session-manager,而需要下几个类库,我已经下载好了。这个是项目官方地址,可以到这里进行下载http://code.google.com/p/memcached-session-manager/

[root@TomcatA msm]# ls   javolution-5.5.1.jar               memcached-session-manager-tc7-1.8.2.jar spymemcached-2.10.2.jar memcached-session-manager-1.8.2.jar msm-javolution-serializer-1.8.2.jar

将这几个类库放到tomcat的lib库中

[root@TomcatA msm]# cp * /usr/local/tomcat/lib/

进去看下,确保复制成功

好了下面就开始修改配置文件 /usr/local/tomcat/conf/server.xml
分别在两个tomcat上的host上定义一个用于测试的context容器,并在其中创建一个会话管理器,如下所示:

<Context path="/test" docBase="/usr/local/tomcat/webapps/test" reloadable="true">       <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:192.168.1.201:11211,n2:192.168.1.202:11211" failoverNodes="n1" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.javolution.JavolutionTranscoderFactory" />   </Context>

提供测试相应的文件夹及测试文件

tomcatA:

# mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}  mkdir: created directory `/usr/local/tomcat/webapps/test'     mkdir: created directory `/usr/local/tomcat/webapps/test/WEB-INF'      mkdir: created directory `/usr/local/tomcat/webapps/test/WEB-INF/classes'      mkdir: created directory `/usr/local/tomcat/webapps/test/WEB-INF/lib'
# vim /usr/local/tomcat/webapps/test/index.jsp    <%@ page language="java" %>    <html>      <head><title>TomcatA</title></head>      <body>        <h1><font color="red">TomcatA.magedu.com</h1>        <table align="centre" border="1">          <tr>            <td>Session ID</td>        <% session.setAttribute("magedu.com","magedu.com"); %>            <td><%= session.getId() %></td>          </tr>          <tr>            <td>Created on</td>            <td><%= session.getCreationTime() %></td>        </tr>        </table>      </body>    </html>

复制web.xml文件

# cp /usr/local/tomcat/conf/web.xml /usr/local/tomcat/webapps/test/WEB-INF/

tomcatB:

# mkdir -pv /usr/local/tomcat/webapps/test/WEB-INF/{classes,lib}  mkdir: created directory `/usr/local/tomcat/webapps/test'    mkdir: created directory `/usr/local/tomcat/webapps/test/WEB-INF'    mkdir: created directory `/usr/local/tomcat/webapps/test/WEB-INF/classes'    mkdir: created directory `/usr/local/tomcat/webapps/test/WEB-INF/lib'
# vim /usr/local/tomcat/webapps/test/index.jsp   <%@ page language="java" %>    <html>      <head><title>TomcatB</title></head>      <body>        <h1><font color="blue">TomcatB.magedu.com</h1>        <table align="centre" border="1">          <tr>            <td>Session ID</td>        <% session.setAttribute("magedu.com","magedu.com"); %>            <td><%= session.getId() %></td>          </tr>          <tr>            <td>Created on</td>            <td><%= session.getCreationTime() %></td>        </tr>        </table>      </body>    </html>

复制web.xml文件

# cp /usr/local/tomcat/conf/web.xml /usr/local/tomcat/webapps/test/WEB-INF/ 

好了下面我们就可以开始测试了。

这里写图片描述

这里写图片描述

OK,sessionID没变,会话成功保持。

0 0