nginx+tomcat+memcache配置

memcached的作用:
memcached服务的主要作用是通过在自身内存缓存关系型数据库的查询结果,减少数据库被访问的次数,来提高web应用的速度,提高网站架构的并发能力和可拓展性。它是通过内存缓存来存取对象或数据,要比磁盘存取快很多。

安装tomcat:
下载:jdk-7u79-linux-x64.tar.gz
apache-tomcat-7.0.37.tar.gz两个压缩包
在服务器端安装:
tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/
cd jdk1.7.0_79/
ln -s jdk1.7.0_79/ java
ll
vim /etc/profile ##添加环境变量
export JAVA_HOME=/usr/local/java
export CLASSPATH=: JAVEHOME/lib: JAVA_HOME/jre/lib
export PATH= PATH: JAVA_HOME/bin
source /etc/profile
echo $PATH ##检查环境变量是否添加成功
cd /usr/local
ln -s apache-tomcat-7.0.37/ tomcat
cd tomcat/bin
./startup.sh
测试:
nginx+tomcat+memcache配置_第1张图片
cd /usr/local/tomcat/webapps/ROOT/
ls
vim test.jsp
这里写图片描述
测试:
nginx+tomcat+memcache配置_第2张图片

1.利用ip_hash算法:
vim test.jsp  ##写入测试页面
<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="java.util.*" %>
<html><head><title>Cluster App Testtitle>head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"
"
);%>
<% out.println("
ID "
+ session.getId()+"
"
); String dataName = request.getParameter("dataName"); if (dataName != null && dataName.length() > 0) { String dataValue = request.getParameter("dataValue"); session.setAttribute(dataName, dataValue); } out.print("Session list"); Enumeration e = session.getAttributeNames(); while (e.hasMoreElements()) { String name = (String)e.nextElement(); String value = session.getAttribute(name).toString(); out.println( name + " = " + value+"
"
); 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>
在之前实验的基础上配置memcache服务:
cd /usr/local/tomcat
ls
rm -fr memcached-session-manager-tc6-1.6.3.jar
yum install memcached -y
/etc/init.d/memcached start
cp jar /usr/local/tomcat/lib
cd /usr/local/tomcat/lib
rm -fr memcached-session-manager-tc6-1.6.3.jar  ##因为安装的版本
mv * ..
cd ..
rm -fr jar
cd lib/
vim /usr/local/tomcat/conf/context.xml
<Context>
......
<Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
memcachedNodes="n1:172.25.16.2:11211,n2:172.25.16.3:11211"
failoverNodes="n1"  #在 node2 上此项设置为“n2requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
/>
Context>
tail -f logs/cataline.out   ##查看日志查看memcached服务是否配置好

nginx+tomcat+memcache配置_第3张图片

测试:
在浏览器输入172.25.254.1/test.jsp
在172.25.254.2服务器的页面输入用户信息之后执行bin/shutdown.h,重新加载页面,出现172.25.254.3的服务器页面,显示了在node1输入的的用户信息。实现了memcache的交叉缓存功能

nginx+tomcat+memcache配置_第4张图片

nginx+tomcat+memcache配置_第5张图片

2.nginx+sticky模块:
sticky算法应用于服务器前端有cdn时,因为当使用cdn之后,会获取不到用户真正的ip,真正与nginx通信的是cdn的节点,这时ip_hash算法将实现不了负载均衡。

下载:nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d.tar.gz
     nginx-1.10.1.tar.gz
tar zxf nginx-1.10.1.tar.gz
tar zxf nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d.tar.gz
cd nginx-1.10.1
./configure --prefix=/opt/nginx --user=nginx --group=nginx  --with-file-aio --with-http_stub_status_module --with-threads --add-module=/mnt/nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d
make && make install
cd /opt/nginx
vim conf/nginx.conf

nginx+tomcat+memcache配置_第6张图片

这里写图片描述
cd sbin/
./nginx -t ##检测配置脚本运行是否正常
./nignx -s reload ##重新加载服务

你可能感兴趣的:(nginx+tomcat+memcache配置)