Nginx+Tomcat+Memcache部署

本文详细介绍如何在两台服务器上配置JDK、安装Tomcat并实现负载均衡,通过nginx进行流量分配,并集成Memcache来实现会话共享,提高系统的整体性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Node1:    server5 -- (Tomcat,Memcache)
Node2:    server1 -- (nginx,Tomcat,Memcache)

这里写图片描述

一、JDK配置与Tomcat安装

1.Jdk安装与环境变量配置
[root@server5 mnt]# tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
[root@server5 mnt]# cd /usr/local/
[root@server5 local]# ln -s jdk1.7.0_79/ java      ##创建链接,便于启动。另外,作升级处理时,只需将java链接到新版本
[root@server5 local]# vim /etc/profile
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
 11 export JAVA_HOME=/usr/local/java             ##java环境变量
 12 export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
 13 export PATH=$PATH:$JAVA_HOME/bin
-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*

[root@server5 local]# source /etc/profile
编写java测试文件
##测试Java环境是否编译成功
[root@server5 mnt]# vim test.java 
public class test {
        public static void main(String[] arge) {
                System.out.println("Hello World!");
        }
}
[root@server5 mnt]# javac test.java 
[root@server5 mnt]# java test
Hello World!
2.Tomcat安装
[root@server5 mnt]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
##默认启动脚本
[root@server5 local]# /usr/local/apache-tomcat-7.0.90/bin/startup.sh
测试Tomcat:

Apache Tomcat默认端口为8080。
这里写图片描述

在server1上作相同操作:

这里写图片描述

##修改jsp的测试访问页面
[root@server1 tomcat]# cd /usr/local/tomcat/webapps/ROOT/
[root@server1 ROOT]# vim test.jsp
Time is : <%=new java.util.Date() %>

这里写图片描述

二、nginx安装

nginx源码安装传送门

Tomcat日志位置:/usr/local/tomcat/logs/catalina.out 
[root@server3 nginx-1.10.1]# vim /usr/local/lnmp/nginx/conf/nginx.conf
-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*
  4 user nginx nginx;
 26         upstream tomcat{
 27                 sticky;             ##添加sticky模块
 28                 server 172.25.18.1:8080;
 29                 server 172.25.18.5:8080;
 30         }
 41     server {
 42         listen       80;
 43         server_name  localhost;
 ...
 49         location / {
 50             #root   html;
 51             root /usr/local/tomcat/webapps/ROOT;        ##设置nginx根目录
 52              index  index.php index.html index.htm;
 54         }
 ...
 67         location ~ \.jsp$ {
 68             #proxy_pass   http://127.0.0.1:8080;
 69             proxy_pass   http://tomcat;
 70         }
-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*-=*
##启动nginx
[root@server3 nginx-1.10.1]# nginx
接下来开始测试nginx
[root@server1 local]# vim /usr/local/apache-tomcat-7.0.37/webapps/ROOT/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>

这里写图片描述
这里写图片描述
可以发现server1与server5正常轮询。

三、安装Memcache

MemCache的工作流程:先检查客户端的请求数据是否在memcached中,如有,直接把请求数据返回,不再对数据库进行任何操作;如果请求的数据不在memcached中,就去查数据库,把从数据库中获取的数据返回给客户端,同时把数据缓存一份到memcached中(memcached客户端不负责,需要程序明确实现);每次更新数据库的同时更新memcached中的数据,保证一致性。

[root@server5 logs]# yum install Memcache -y
[root@server5 logs]# /etc/init.d/Memcache start
Starting Memcache: 
[root@server5 local]# ls /usr/local/tomcat/lib/
kryo-1.03.jar         kryo-serializers-0.8.jar          Memcache-2.5.jar
Memcache-session-manager-1.5.1.jar      Memcache-session-manager-tc7-1.5.1.jar
minlog-1.2.jar        msm-kryo-serializer
[root@server5 local]# vim /usr/local/apache-tomcat-7.0.37/conf/context.xml 
 <Context>
...
 22     <WatchedResource>WEB-INF/web.xml</WatchedResource>
 23 <Manager className="de.javakaffee.web.msm.MemcacheBackupSessionManager"
 24         MemcacheNodes="n1:172.25.18.1:11211,n2:172.25.18.5:11211"
 25         failoverNodes="n1"            ##由于时交叉存储,所以当备用memcache故障时,采用本机mecache
 26         requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
 27         transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
 28 />
</Context>

这里写图片描述

这里写图片描述

测试:

这里写图片描述

[root@server1 local]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
get 7519AC42BB708238D929716BFDFB466C-n1
VALUE 7519AC42BB708238D929716BFDFB466C-n1 2048 113
Wete�01ek=ek>#7519AC42BB708238D929716BFDFB466C-n1121123vincent123
END
关闭server1的memcache缓存:

这里写图片描述

##server5使用本机memcache
[root@server5 logs]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
get 7519AC42BB708238D929716BFDFB466C-n2
VALUE 7519AC42BB708238D929716BFDFB466C-n2 2048 133
Wete2R01e2��e2��#7519AC42BB708238D929716BFDFB466C-n2234234121123vincent123444444
END
关闭server5的Tomcat服务:

这里写图片描述

[root@server5 logs]# telnet localhost 11211
Trying ::1...
Connected to localhost.
Escape character is '^]'.
get 7519AC42BB708238D929716BFDFB466C-n2
VALUE 7519AC42BB708238D929716BFDFB466C-n2 2048 143
Wete5P01e5P�e5P�#7519AC42BB708238D929716BFDFB466C-n2aaabbb234234121123vincent123444444
END
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值