nginx+tomcat+memcached

#######nginx+tomcat+memcached#####

server 2,3
tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/   ##java软件测试的安装包

cd /usr/local/


ln -s jdk1.7.0_79/ java   ##建立软链接


vim /etc/profile
export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$PATH:$JAVA_HOME/bin


cd
vim test.java
public class test {
       public static void main(String[] arge) {
                System.out.println("Hello World");
        }

}



javac test.java

java test



tomcat的安装
tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
cd /usr/local/

ln -s apache-tomcat-7.0.37/ tomcat


cd /usr/local/tomcat/bin

./startup.sh            ##执行启动脚本


cd /usr/local/tomcat/webapps/ROOT/
vim test.jsp            ##建立.jsp测试界面

the time is :<%=new java.util.Date()%>



tomcat与nginx的结合
server1
cd /usr/local/lnmp/nginx/conf/
vim nginx.conf
http {
    upstream westos {
      ip_hash;                          ##ip哈希
      server 172.25.4.2:8080;
      server 172.25.4.3:8080;
      #server 127.0.0.1:8000 backup;    

      }


location ~ \.jsp$ {                #所有jsp页面交给tomcat处理,动静分离
            proxy_pass http://westos;   ##反向代理

        }


nginx -s reload

测试:浏览器访问172.25.4.1/test.jsp


server2

cd /usr/local/tomcat/webapps/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>


scp test.jsp 172.25.4.3:/usr/local/tomcat/webapps/ROOT/


cd /usr/local/tomcat

bin/shutdown.sh     ##执行关闭tomcat服务脚本

bin/startup.sh      ##执行开启tomcat服务脚本


server2,3                                                                                                                                 

tomcat和memcache的结合

yum install memcached -y


/etc/init.d/memcached start


cd /usr/local/tomcat/lib

把jar包都放在这个目录底下

rm -f memcached-session-manager-tc6-1.6.3.jar


cd /usr/local/tomcat/conf/

vim context.xml

<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"

memcachedNodes="n1:172.25.4.2:11211,n2:172.25.4.3:11211"

failoverNodes="n1"       ##server3端在此处修改为n2

requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"

transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"

/>


cd ..

bin/shutdown.sh

bin/startup.sh


tail -f logs/catalina.out    ##查看配置文件,进行检查

MemcachedSessionService finished initialization, sticky true, operation timeout 1000, with node ids [n2] and failover node ids [n1]    ##当出现这一行代表实验成功


也可以安装telnet进行检测

yum install telnet -y


telnet localhost 11211


##如果tomcat与varnish 结合,不能用ip哈希,因为他们的存储方式不一样。

访问 http://172.25.4.1/test.jsp,不同的主机访问时会调度到不同的tomcat实例上处理来自同一主机的请求会交给同一个 tomcat 实例处理,此时你down掉当前正在响应的 tomcat 实例,nginx会自动把用户的请求调度到另一个tomcat实例上,同时 session 也没有丢掉。

<T1> <T2>

        \ /

        X

        / \

<M1> <M2>

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

tar zxf nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d.tar.gz

tar zxf nginx-1.10.1.tar.gz


cd nginx-1.10.1

./configure --prefix=/opt/nginx --user=nginx --group=nginx --with-threads --with-file-aio --with-http_ssl_module --with-http_stub_status_module --add-module=/root/nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d


make && make install


vim /opt/nginx/conf/nginx.conf


cd /opt/nginx/conf/

./nginx


nginx -s reload   ##如果之前的nginx版本不同在更新之前需要停掉前一个nginx -s stop

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值