sh jdk-6u32-linux-x64.bin
mv jdk1.6.0_32/ /usr/local/java
vi /etc/profile
export JAVA_HOME=/usr/local/java
export CLASSPATH=:$JAVA_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
【tomcat安装】----处理jsp动态页面
tar zxf apache-tomcat-7.0.29.tar.gz
mv apache-tomcat-7.0.29 /usr/local/tomcat
cd /usr/local/tomcat/bin/
./startup.sh
访问:http:192.168.0.88:8080
处理jsp动态页面的路径:/usr/local/tomcat/webapps/ROOT
vi test.jsp
the time is <%=new java.util.Date() %>
访问:http:192.168.0.88:8080/test.jsp 测试!
【nginx+tomcat】--nginx将动态页面交给tomcat处理
vi /usr/local/lnmp/nginx/conf/nginx.conf
location ~ \.jsp$ {
proxy_pass http://127.0.0.1:8080;(可以是别的主机)
}
nginx -s reload
【nginx+tomcat实现动态页面的均衡负载】
192.168.0.88:nginx,tomcat
192.168.0.119:tomcat
vi /usr/local/lnmp/nginx/conf/nginx.conf
upstream myproject {
server 192.168.0.119:8080;
server 192.168.0.25:8080;
}
location ~ \.jsp$ {
proxy_pass http://myproject;
}
测试:访问:http://myproject/test.jsp 关闭:192.168.0.88上的tomcat可以继续访问
请求处理图:
client -------> nginx:80(处理静态页面)<-------->tomcat1:8080---\
| <-------->mecache(实现会话序列化)
<--------->tomcat2:8080---/
Tomcat-1 (T1) 将 session 存储在 memcached-2 (T2)上。只有当 M2 不可用时,T1 才将 session 存
储在 memcached-1 上(M1 是 T1 failoverNode)。使用这种配置的好处是,当 T1 和 M1 同时崩
溃时也不会丢失 session 会话,避免单点故障。
【sticky模块加载】
./configure --with-http_stub_status_module --with-http_ssl_module --user=nginx --group=nignx --prefix=/usr/local/lnmp/nginx/ --add-module=/root/nginx-sticky-module-1.0
make && make install
vi /usr/local/lnmp/nginx/conf/nginx.conf
upstream myproject {
sticky;
server 192.168.0.119:8080;
server 192.168.0.88:8080;
}
nginx -s reload
测试脚本: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>
***********************************************************************
访问:http://desktop88.example.com/test.jsp 观察会话,关闭一方的tomcat
【nginx+tomcat+memcache】
把如下软件包放置到/usr/local/tomcat/lib 目录中
kryo-1.03.jar
kryo-serializers-0.8.jar
memcached-2.5.jar
memcached-session-manager-1.5.1.jar
memcached-session-manager-tc7-1.5.1.jar
minlog-1.2.jar
msm-kryo-serializer-1.5.1.jar
reflectasm-0.9.jar
在192.168.0.88
vim /usr/local/tomcat/conf/context.xml
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:192.168.0.88:11211,n2:192.168.0.119:11211"
failoverNodes="n1" (在192.168.0.119上是n2)
requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
双机:yum install memcached -y
/etc/init.d/memcached start
测试:关闭访问到的tomcat,看会话是否能继续!
注意:
【查看memcache信息】
在访问192.168.0.88时,它的数据存储在192.168.0.119的memcache中(通过端口11211)
[root@server25 bin]# telnet localhost 11211
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
stats items
STAT items:5:number 1
STAT items:5:age 37
STAT items:5:evicted 0
STAT items:5:evicted_nonzero 0
STAT items:5:evicted_time 0
STAT items:5:outofmemory 0
STAT items:5:tailrepairs 0
END
stats cachedump 5 0
ITEM 32F14C81BF8100FF382AF4C5D1725628-n2 [126 b; 1346918092 s]
END
get 32F14C81BF8100FF382AF4C5D1725628-n2
VALUE 32F14C81BF8100FF382AF4C5D1725628-n2 2048 126
S9?w?w9?w?019?w??9?w??#32F14C81BF8100FF382AF4C5D1725628-n2degrsgwuser2westosuser1westos
END
分享到:
相关推荐
在构建高性能的Web服务环境中,...总结来说,Nginx+Memcache+Linux+Tomcat集群通过合理利用资源,实现了Web服务的高性能、高可用性和可扩展性。这种架构在处理大量并发请求时表现出色,是现代互联网服务的常见选择。
【Nginx+Memcache+Tomcat集群(session共享)】是一种常见的高可用性和负载均衡解决方案,主要用于提升Web应用的性能和可扩展性。这个配置利用Nginx作为反向代理和负载均衡器,Memcache作为分布式session存储,而...
### Apache、Tomcat、Memcache与Nginx在分布式网站建设中的应用 #### Apache与Tomcat集成 Apache是一款广泛使用的Web服务器软件,而Tomcat是Apache基金会下的一个开源项目,主要作为Java应用程序的Servlet容器。...
1. **Tomcat**:Apache Tomcat是一款开源的Java Servlet容器,用于运行Java Web应用程序。在多台Tomcat服务器上部署应用时,如果不做特殊处理,每个服务器会独立维护用户Session,导致Session无法跨服务器共享。 2....
在构建高性能、高可用性的Web应用系统时,整合Nginx、Tomcat和Memcache是常见的一种技术架构。这个程序包“tomcat7+nginx+memcached”旨在实现通过Nginx进行负载均衡,以及利用Memcache来共享Tomcat服务器之间的...
这个压缩包“Nginx+tomcat6+memcache所需jar包”提供了实现这一目标所需的组件。 首先,Nginx是一个高性能的反向代理服务器,常用于负载均衡,它能够将用户的请求分发到后端不同的服务器上,从而提高服务的响应速度...
【标题】"nginx+tomcat+memcached例子"揭示了一个集成Web服务器技术的场景,其中Nginx作为前端代理服务器,Tomcat作为后端Java应用服务器,而Memcached则作为一个分布式内存缓存系统来提高整体性能。这个组合常用于...
描述 "tomcat+nginx+memcache 集群所需要的jar包" 表明这是一个用于构建基于Tomcat应用服务器、Nginx反向代理服务器和Memcache缓存服务的集群环境所需的相关组件。在这个环境中,Nginx主要负责分发请求,而Tomcat...
描述中提到的“Nginx+Tomcat8.5.6 + Memcache集群 kryo-serializer方式序列化 实现session共享”,进一步解释了架构的关键组成部分和策略。Nginx作为一个高性能的反向代理服务器,负责将用户请求分发到后端的Tomcat...
在构建分布式系统时,session共享是一个关键问题,特别是在使用多个应用服务器如Nginx和Tomcat的情况下。本主题聚焦于如何使用Nginx、Tomcat 8.0和Memcached 1.5来实现session共享,确保用户在访问不同服务器时能够...
Tomcat是Apache软件基金会的Java Servlet容器,常用于部署Java Web应用程序。Tengin(也称为Nginx)则是一款强大的反向代理服务器和HTTP负载均衡器,常用于优化Web服务器性能。本文将详细介绍如何在Tomcat中集成...
总之,Apache Tomcat 7 集成Memcache-Java-Session使得Web应用能够在Nginx的软负载下保持会话一致性,提高了系统的可靠性和性能。正确配置和使用这一技术,可以有效应对高流量的挑战,为用户提供无缝的浏览体验。
描述中提到"nginx做tomcat负载均衡时",意味着这里涉及的是使用Nginx作为反向代理和负载均衡器,将来自用户的请求分发到后端的多个Tomcat服务器上。这样可以提高服务的可用性和响应速度,同时也为伸缩性提供了基础,...
memcached-session-manager-1.9.5, kryo-3.0.3,asm-5.0.3等,我用的jdk是1.8,解决了tomcat7java.lang.NoSuchFieldError: attributes等 错误。
这里我们主要探讨的是如何通过`memcache`与`Tomcat7`的集成,实现跨服务器的Session共享,以提高系统的可扩展性和性能。`memcache`是一个高性能、分布式的内存对象缓存系统,它能够将数据存储在内存中,从而加快读取...
在构建高性能、高可用性的Web服务时,"nginx-1.9.3--tomcat-(6,7)-memcached-session共享负载"是一个典型的架构模式,它整合了Nginx、Tomcat以及Memcached来实现负载均衡和Session共享。这个配置方案能够有效地提高...
在构建高可用的Web服务时,常常需要使用负载均衡技术,比如通过Nginx作为反向代理服务器,配合多个Tomcat实例实现应用集群。然而,当用户会话(Session)在集群中的不同Tomcat实例之间不能共享时,会导致用户体验...
描述中提到的“tomcat 整合nginx + memcache 进行负载均衡以及共享session”,进一步解释了整合的目的。这里涉及到两个关键点:负载均衡和Session共享。负载均衡通常通过反向代理服务器如Nginx来实现,它可以根据...
同样,以Perl、Java(以Tomcat应用服务器为例讲述)和Ruby开发的网站都会从中获益,包括对应用服务器的管理。对于ASP.NET的用户来说,现在从Windows系统下向Linux系统迁移的用户很多,这就无疑会使用Mono,在本书中...
Memcache 面试题 23道 MyBatis面试题 37道(含答案) MySQL高频面试题 40道(含答案) Netty面试题 20道 Nginx面试题 23道 RabbitMQ面试题 22道 Redis面试题(含答案) Spring面试题(含答案) SpringCloud面试题 49...