nginx+tomcat+memcache配置

来源:互联网 发布:js按钮点击事件隐藏 编辑:程序博客网 时间:2024/06/11 05:31

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
测试:
这里写图片描述
cd /usr/local/tomcat/webapps/ROOT/
ls
vim test.jsp
这里写图片描述
测试:
这里写图片描述

1.利用ip_hash算法: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>
在之前实验的基础上配置memcache服务:cd /usr/local/tomcatlsrm -fr memcached-session-manager-tc6-1.6.3.jaryum install memcached -y/etc/init.d/memcached startcp jar /usr/local/tomcat/libcd /usr/local/tomcat/librm -fr memcached-session-manager-tc6-1.6.3.jar  ##因为安装的版本mv * ..cd ..rm -fr jarcd 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服务是否配置好

这里写图片描述

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

这里写图片描述

这里写图片描述

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.gztar zxf nginx-1.10.1.tar.gztar zxf nginx-goodies-nginx-sticky-module-ng-c78b7dd79d0d.tar.gzcd 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-c78b7dd79d0dmake && make installcd /opt/nginxvim conf/nginx.conf

这里写图片描述

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

原创粉丝点击