tomcat+nginx+memcache

本文详细介绍如何在Linux环境下安装配置Tomcat服务器,并通过Nginx实现两台Tomcat服务器的负载均衡。涵盖JDK安装、Tomcat启动、Nginx配置及session共享等关键步骤。

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

一、tomcat

Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器

当在一台机器上配置好Apache服务器,可利用它响应HTML页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。Tomcat具有处理HTML页面的功能,但 Tomcat处理静态HTML的能力不如Apache服务器。

实验环境:

linux 6.5

tomcat 1 : server1

tomcat 2 : server2

Tomcat 的安装及配置

tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/

cd /usr/local/

ln -s jdk1.7.0_79/ java

ll

cd

vim /etc/profile   编写全局变量

 

source /etc/profile

/etc/init.d/php-fpm start

nginx  打开nginx

vim test.java  编写一个java测试文件

javac test.java  检测java文件语法是否正确

java test 执行这个文件
 

tar zxf apache-tomcat-7.0.90.tar.gz -C /usr/local/

cd /usr/local/

ln -s apache-tomcat-7.0.90/ tomcat

cd tomcat/

netstat -antlp  查看服务是否都开启

在浏览器中访问8080端口会看到如下界面

cd /usr/local/tomcat/webapps/ROOT/

vim test.jsp

在浏览器测试test.jsp

修改nginx的默认配置文件

cd /usr/local/lnmp/nginx/conf/

vim nginx.conf

添加 两台 tomcat 机

 ##jsp结尾的进行负载均衡请求

nginx -s reload  ##重新加载

二、tomcat负载均衡

在第二台tomcat 机中(做与第一台tomcat 机相同的操作)

   tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/

   tar zxf apache-tomcat-7.0.90.tar.gz -C /usr/local/

   vim /etc/profile

   source /etc/profile

   cd /usr/local/

   ln -s jdk1.7.0_79/ java

   ln -s apache-tomcat-7.0.90/ tomcat

   java 

   javac

   cd /usr/local/tomcat/

   bin/startup.sh    启动tomcat

cd /usr/local/tomcat/webapps/ROOT/

vim test.jsp

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

cd /usr/local/tomcat/logs/

cat catalina.out ##查看日志

在浏览器中访问,检测是否会产生轮询

产生轮询,则配置成功

tomcat 1中

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 server2:/usr/local/tomcat/webapps/ROOT

编辑nginx 配置文件

cd /usr/local/lnmp/nginx/conf

vim nginx.conf

http { 

       upstream tomcat

         { 

           sticky; ###将sticky写入nginx配置文件

          server 172.25.254.100:8080; 

          server 172.25.254.101:8080; 

          } 

 include mime.types; 

default_type application/octet-stream;

nginx -s reload ###重新加载

实现session共享

打开tomcat 1的 me,cached 服务

在tomcat 2中

yum install memcached -y

/etc/init.d/memcached start

cd /usr/local/tomcat/conf/

vim context.xml 

加到文件的最后面,但要在最后一个括号内

scp context.xml  server1:/usr/local/tomcat/conf/

在tomcat1(server1)中

cd /usr/local/tomcat/conf/

vim context.xml  只需改

failovverNodes='n1'

注意:将jar包所有文件放入/usr/local/tomcat/lib中,记住要删除memcache的6版本
yum install telnet -y (在server1和server2中分别安装)
telnet localhost 11211 ###查看session中存的数据
在server1中做和server2相同的配置,即上面的步骤

测试结果如图:

当server1的memcache挂掉后,之前上传的结果依旧在  节点不会发生改变,只有当一个节点坏掉后,节点才会发生变化

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值