Nginx+Tomcat+Memcached

nginx+tomcat+memcached

系统环境:rhel6 x64 selinux and iptables disabled
主机角色:server1: 172.25.53.1:nginx tomcat memcached
server2: 172.25.53.2:tomcat memcached
软件下载:http://www.nginx.org
http://code.google.com/p/memcached-session-manager/

Tomcat-1 (T1) 将 session 存储在 memcached-2 (T2)上。只有当 M2 不可用时,T1 才将 session 存
储在 memcached-1 上(M1 是 T1 failoverNode)。使用这种配置的好处是,当 T1 和 M1 同时崩
溃时也不会丢失 session 会话,避免单点故障。

架构原理图

这里写图片描述

打开nginx php-fpm
[root@server1 ~]# nginx -t
nginx: the configuration file /usr/local/lnmp/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/lnmp/nginx/conf/nginx.conf test is successful
[root@server1 ~]# nginx
[root@server1 ~]# /etc/init.d/php-fpm start
Starting php-fpm  done
解压jdk并创建软链接
[root@server1 ~]# tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
[root@server1 ~]# cd /usr/local/
[root@server1 local]# ln -s jdk1.7.0_79/ java
修改环境变量并使之生效
[root@server1 local]# vim /etc/profile
[root@server1 local]# tail -l 5 /etc/profile
tail: invalid option -- 'l'
Try `tail --help' for more information.
[root@server1 local]# tail -n 5 /etc/profile


export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
[root@server1 local]# source /etc/profile
[root@server1 local]# vim test.java
[root@server1 local]# cat test.java 
public class test {



        public static void main(String[] arge) {

                System.out.println("Hello World!");

        }

}


[root@server1 local]# javac test.java 
[root@server1 local]# java test
Hello World!
安装tomcat
[root@server1 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
[root@server1 ~]# cd /usr/local/
[root@server1 local]# ln -s apache-tomcat-7.0.37/ tomcat
[root@server1 local]# cd tomcat/
[root@server1 tomcat]# bin/startup.sh 

这里写图片描述

[root@server1 tomcat]# cd /usr/local/apache-tomcat-7.0.37/webapps/ROOT/
[root@server1 ROOT]# pwd
/usr/local/apache-tomcat-7.0.37/webapps/ROOT
[root@server1 ROOT]# vim test.jsp
[root@server1 ROOT]# cat test.jsp 
The time is: <%=new java.util.Date()%>
浏览器查看,默认端口8080

这里写图片描述

[root@server1 ROOT]# cd /usr/local/lnmp/nginx/conf/
[root@server1 conf]# vim nginx.conf

这里写图片描述

[root@server1 conf]# nginx -s reload

这里写图片描述
这里写图片描述
这里写图片描述

无图形解决方法
[root@server1 local]# cd /usr/local/lnmp/nginx/conf/
[root@server1 conf]# vim nginx.conf
[root@server1 conf]# nginx -s reload

这里写图片描述
这里写图片描述

Server2进行相同的 配置,唯一不同的是server2不用打开nginx与php

Server1 nginx配置

[root@server1 conf]# vim nginx.conf

这里写图片描述

[root@server1 conf]# nginx -s reload


将server1和server2的发布写为如下

[root@server1 conf]# cd /usr/local/
[root@server1 local]# cd apache-tomcat-7.0.37/webapps/ROOT/
[root@server1 ROOT]# vim test.jsp 
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
out.println("<br> ID " + session.getId()+"<br>");
String dataName = request.getParameter("dataName");
if (dataName != null && dataName.length() > 0) {
String dataValue = request.getParameter("dataValue");
session.setAttribute(dataName, dataValue);
}
out.print("<b>Session list</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="test.jsp" method="POST">
name:<input type=text size=20 name="dataName">
<br>
key:<input type=text size=20 name="dataValue">
<br>
<input type=submit>
</form>
</body>
</html>

浏览器测试如下
这里写图片描述
这里写图片描述
再次更改nginx配置
这里写图片描述
这里写图片描述

把nginx停了
重启时会报错,因为我们昨天安装时少安模块
[root@server1 ~]# cd nginx-1.10.1
[root@server1 nginx-1.10.1]# make clean 
rm -rf Makefile objs
[root@server1 nginx-1.10.1]# ./configure --prefix=/usr/local/lnmp/nginx --with-http_ssl_module --with-http_stub_status_module --user=nginx --group=nginx --with-threads --with-file-aio --add-module=/root/nginx-sticky-module-ng

Make && make install

刷新nginx

这里写图片描述

[root@server1 ~]#  yum install -y memcached

[root@server1 ~]# /etc/init.d/memcached start
Starting memcached:                                        [  OK  ]
[root@server1 ~]# cd /usr/local/tomcat/conf/
[root@server1 conf]# vim context.xml 
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.25.53.1:11211,n2:172.25.53.2:11211"
failoverNodes="n1"
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
</Context>




Server2唯一不同是failoverNodes="n2"

这里写图片描述

[root@server1 ~]# cd /usr/local/tomcat/lib/
[root@server1 lib]# ls
annotations-api.jar  ecj-4.2.1.jar  servlet-api.jar     tomcat-i18n-fr.jar
catalina-ant.jar     el-api.jar     tomcat-api.jar      tomcat-i18n-ja.jar
catalina-ha.jar      jasper-el.jar  tomcat-coyote.jar   tomcat-jdbc.jar
catalina.jar         jasper.jar     tomcat-dbcp.jar     tomcat-util.jar
catalina-tribes.jar  jsp-api.jar    tomcat-i18n-es.jar
[root@server1 lib]# pwd
/usr/local/tomcat/lib

将jar架包传过来


[kiosk@foundation53 jar]$ scp * root@172.25.53.1:/usr/local/tomcat/lib
root@172.25.53.1's password: 
asm-3.2.jar                                   100%   42KB  42.4KB/s   00:00    
kryo-1.04.jar                                 100%   93KB  92.6KB/s   00:00    
kryo-serializers-0.10.jar                     100%   59KB  59.2KB/s   00:00    
memcached-session-manager-1.6.3.jar           100%  129KB 129.1KB/s   00:00    
memcached-session-manager-tc6-1.6.3.jar       100%   10KB  10.1KB/s   00:00    
memcached-session-manager-tc7-1.6.3.jar       100% 9258     9.0KB/s   00:00    
minlog-1.2.jar                                100% 4879     4.8KB/s   00:00    
msm-kryo-serializer-1.6.3.jar                 100%   23KB  23.2KB/s   00:00    
reflectasm-1.01.jar                           100%   11KB  11.3KB/s   00:00    
spymemcached-2.7.3.jar                        100%  398KB 398.4KB/s   00:00    
[kiosk@foundation53 jar]$ scp * root@172.25.53.2:/usr/local/tomcat/lib
root@172.25.53.2's password: 
asm-3.2.jar                                   100%   42KB  42.4KB/s   00:00    
kryo-1.04.jar                                 100%   93KB  92.6KB/s   00:00    
kryo-serializers-0.10.jar                     100%   59KB  59.2KB/s   00:00    
memcached-session-manager-1.6.3.jar           100%  129KB 129.1KB/s   00:00    
memcached-session-manager-tc6-1.6.3.jar       100%   10KB  10.1KB/s   00:00    
memcached-session-manager-tc7-1.6.3.jar       100% 9258     9.0KB/s   00:00    
minlog-1.2.jar                                100% 4879     4.8KB/s   00:00    
msm-kryo-serializer-1.6.3.jar                 100%   23KB  23.2KB/s   00:00    
reflectasm-1.01.jar                           100%   11KB  11.3KB/s   00:00    
spymemcached-2.7.3.jar                        100%  398KB 398.4KB/s   00:00 

[root@server1 lib]# ls
annotations-api.jar
asm-3.2.jar
catalina-ant.jar
catalina-ha.jar
catalina.jar
catalina-tribes.jar
ecj-4.2.1.jar
el-api.jar
jasper-el.jar
jasper.jar
jsp-api.jar
kryo-1.04.jar
kryo-serializers-0.10.jar
memcached-session-manager-1.6.3.jar
memcached-session-manager-tc6-1.6.3.jar
memcached-session-manager-tc7-1.6.3.jar
minlog-1.2.jar
msm-kryo-serializer-1.6.3.jar
reflectasm-1.01.jar
servlet-api.jar
spymemcached-2.7.3.jar
tomcat-api.jar
tomcat-coyote.jar
tomcat-dbcp.jar
tomcat-i18n-es.jar
tomcat-i18n-fr.jar
tomcat-i18n-ja.jar
tomcat-jdbc.jar
tomcat-util.jar
删掉如下
[root@server1 lib]# rm -f memcached-session-manager-tc6-1.6.3.jar
[root@server1 lib]# cd ..
[root@server1 tomcat]# cd bin/
[root@server1 bin]# ./startup.sh 
Using CATALINA_BASE:   /usr/local/tomcat
Using CATALINA_HOME:   /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME:        /usr/local/java
Using CLASSPATH:       /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar
[root@server1 bin]# cd ..
[root@server1 tomcat]# cd logs/
[root@server1 logs]# cat catalina.
catalina.2018-08-07.log  catalina.out             
[root@server1 logs]# cat catalina.out 
查看启动日志

Server1
这里写图片描述

server2
这里写图片描述
出现那一行代表启动完成

两个都装
[root@server2 logs]# yum install -y telnet

这里写图片描述
这里写图片描述

停掉server2
[root@server2 tomcat]# /etc/init.d/memcached stop
Stopping memcached: 

这里写图片描述
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值