300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > Nginx+Tomcat+memcached负载均衡实现seccion存储

Nginx+Tomcat+memcached负载均衡实现seccion存储

时间:2019-07-16 01:03:52

相关推荐

Nginx+Tomcat+memcached负载均衡实现seccion存储

实验环境:

rhel6.5

server1:172.25.54.9 nginx+php+memcached+tomcat

server2:172.25.54.4 memcached+tomcat

server1配置tomcat

[root@server1 ~]# /etc/init.d/php-fpm start //开启PHPStarting php-fpm done[root@server1 ~]# which nginx/usr/local/lnmp/nginx/sbin/nginx[root@server1 ~]# nginx//开启Nginx[root@server1 ~]# lsapache-tomcat-7.0.37.tar.gz nginx-1.10.1cmake-2.8.12.2-4.el6.x86_64.rpm nginx-1.10.1.tar.gzDiscuz_X3.2_SC_UTF8.zip nginx-sticky-module-nggd-devel-2.0.35-11.el6.x86_64.rpm nginx-sticky-module-ng.tar.gzjdk-7u79-linux-x64.tar.gzopenresty-1.13.6.1libmcrypt-2.5.8-9.el6.x86_64.rpm openresty-1.13.6.1.tar.gzlibmcrypt-devel-2.5.8-9.el6.x86_64.rpm package.xmlmemcache-2.2.5php-5.6.35memcache-2.2.5.tgz php-5.6.35.tar.bz2mysql-5.7.11 re2c-0.13.5-1.el6.x86_64.rpmmysql-boost-5.7.11.tar.gz[root@server1 ~]# tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local///解压JDK到指定目录下[root@server1 ~]# cd /usr/local/[root@server1 local]# lsbin games jdk1.7.0_79 lib64 lnmp shareetc include liblibexec sbin src[root@server1 local]# ln -s jdk1.7.0_79/ java //制作软链接[root@server1 local]# ll -d /usr/local/java/drwxr-xr-x 8 uucp 143 4096 Apr 11 /usr/local/java/[root@server1 local]# vim /etc/profile[root@server1 local]# cat /etc/profile | tail -n 3export JAVA_HOME=/usr/local/javaexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/libexport PATH=$PATH:$JAVA_HOME/bin[root@server1 local]# source /etc/profile[root@server1 local]# echo $PATH/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/lnmp/mysql/bin:/usr/local/lnmp/nginx/sbin:/usr/local/lnmp/php/bin:/usr/local/java/bin[root@server1 local]# echo $CLASSPATH.:/usr/local/java/lib:/usr/local/java/jre/lib[root@server1 local]# echo $JAVA_HOME /usr/local/java[root@server1 local]# cd[root@server1 ~]# which javac/usr/local/java/bin/javac

编辑java文件进行环境测试

[root@server1 ~]# vim test.java[root@server1 ~]# cat test.java public class test{public static void main(String[] args){System.out.println("Hello tutu!");}}[root@server1 ~]# javac test.java [root@server1 ~]# java testHello tutu![root@server1 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/[root@server1 ~]# cd /usr/local/[root@server1 local]# lsapache-tomcat-7.0.37 etc include jdk1.7.0_79 lib64 lnmp sharebin games javaliblibexec sbin src[root@server1 local]# ln -s apache-tomcat-7.0.37/ tomcat[root@server1 local]# cd tomcat/[root@server1 tomcat]# lsbin CONTRIBUTING.md logs RELEASE-NOTES webappsBUILDING.txt lib NOTICERUNNING.txt workconfLICENSEREADME.md temp[root@server1 tomcat]# bin/startup.shUsing CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /usr/local/javaUsing CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jarTomcat started.[root@server1 tomcat]# cd webapps/ROOT/[root@server1 ROOT]# lsasf-logo-wide.svg bg-nav-item.png favicon.ico tomcat.css tomcat-power.gifbg-button.pngbg-nav.png index.jsptomcat.gif tomcat.svgbg-middle.pngbg-upper.pngRELEASE-NOTES.txt tomcat.png WEB-INF[root@server1 ROOT]# pwd/usr/local/tomcat/webapps/ROOT[root@server1 ROOT]# ll index.jsp -rw-r--r-- 1 root root 12197 Jul 3 01:09 index.jsp[root@server1 ROOT]#

测试——访问172.25.54.9:8080

[root@server1 ROOT]# vim test.jsp[root@server1 ROOT]# cat test.jsp The time is: <%=new java.util.Date() %>[root@server1 ROOT]# cd /usr/local/lnmp/nginx/conf/[root@server1 conf]# vim nginx.conf59 location ~ \.jsp$ {60 proxy_pass http://127.0.0.1:8080;61 }[root@server1 conf]# nginx -s reload

同样,需要在server2上配置tomcat

[root@server2 ~]# lsapache-tomcat-7.0.37.tar.gz jdk-7u79-linux-x64.tar.gz[root@server2 ~]# vim /etc/profile[root@server2 ~]# cat /etc/profile |tail -n 3export JAVA_HOME=/usr/local/javaexport CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/libexport PATH=$PATH:$JAVA_HOME/bin[root@server2 ~]# source /etc/profile[root@server2 ~]# tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/[root@server2 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/[root@server2 ~]# cd /usr/local/[root@server2 local]# lsapache-tomcat-7.0.37 etc includelib libexec sharebin games jdk1.7.0_79 lib64 sbinsrc[root@server2 local]# ln -s jdk1.7.0_79/ java[root@server2 local]# ln -s apache-tomcat-7.0.37/ tomcat[root@server2 local]# cd tomcat/[root@server2 tomcat]# bin/startup.shUsing CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /usr/local/javaUsing CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jarTomcat started.[root@server2 tomcat]#

测试:

##server1:[root@server1 conf]# pwd/usr/local/lnmp/nginx/conf[root@server1 conf]# vim nginx.conf19 upstream tomcat {20 server 172.25.54.4:8080;21 server 172.25.54.9:8080;22 }59 location ~ \.jsp$ {60 proxy_pass http://tomcat;61 }[root@server1 conf]# nginx -s reload[root@server1 conf]# cd /usr/local/tomcat/webapps/ROOT/ [root@server1 ROOT]# vim test.jsp [root@server1 ROOT]# cat test.jsp server1 The time is: <%=new java.util.Date() %>##server2:[root@server1 ROOT]# pwd/usr/local/tomcat/webapps/ROOT/[root@server2 ROOT]# vim test.jsp [root@server2 ROOT]# cat test.jsp server2 The time is: <%=new java.util.Date() %>

[root@server1 ROOT]# pwd/usr/local/tomcat/webapps/ROOT[root@server1 ROOT]# vim test.jsp [root@server1 ROOT]# cat 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>[root@server1 ROOT]# scp test.jsp root@172.25.54.4:/usr/local/tomcat/webapps/ROOT/

测试——刷新一次需要重新连接一次

[root@server1 ROOT]# pwd/usr/local/tomcat/webapps/ROOT[root@server1 ROOT]# cd /usr/local/tomcat/logs/[root@server1 logs]# cat catalina.out | tail -n 4INFO: Starting ProtocolHandler ["ajp-bio-8009"]Aug 07, 10:02:00 AM org.apache.catalina.startup.Catalina startINFO: Server startup in 18610 msuser2 = 234[root@server1 logs]#

[root@server2 ROOT]# pwd/usr/local/tomcat/webapps/ROOT[root@server2 ROOT]# cd /usr/local/tomcat/logs/[root@server2 logs]# cat catalina.out | tail -n 4Aug 07, 10:40:11 AM org.apache.catalina.startup.Catalina startINFO: Server startup in 30301 msuser1 = 123user3 = 345[root@server2 logs]#

添加sticky函数

添加该函数后,不会存在刷新需要重新连接的问题,不过还是存在存储的问题

[root@server1 ~]# lsapache-tomcat-7.0.90.tar.gz nginx-1.10.1.tar.gzcmake-2.8.12.2-4.el6.x86_64.rpm nginx-sticky-module-ngDiscuz_X3.2_SC_UTF8.zip nginx-sticky-module-ng.tar.gzgd-devel-2.0.35-11.el6.x86_64.rpm openresty-1.13.6.1jdk-7u79-linux-x64.tar.gzopenresty-1.13.6.1.tar.gzlibmcrypt-2.5.8-9.el6.x86_64.rpm package.xmllibmcrypt-devel-2.5.8-9.el6.x86_64.rpm php-5.6.35memcache-2.2.5php-5.6.35.tar.bz2memcache-2.2.5.tgz re2c-0.13.5-1.el6.x86_64.rpmmysql-5.7.11 test.classmysql-boost-5.7.11.tar.gztest.javanginx-1.10.1[root@server1 ~]# nginx -s stop[root@server1 ~]# cd nginx-1.10.1[root@server1 nginx-1.10.1]# make cleanrm -rf Makefile objs[root@server1 nginx-1.10.1]# ./configure --prefix=/usr/local/lnmp/nginx/ --with-http_ssl_module --with-http_stub_status_module --with-file-aio --with-threads --add-module=/root/nginx-sticky-module-ng //添加sticky函数模块[root@server1 nginx-1.10.1]# make && make install[root@server1 nginx-1.10.1]# nginx[root@server1 nginx-1.10.1]# cd /usr/local/lnmp/nginx/conf/[root@server1 conf]# vim nginx.conf19 upstream tomcat {20 sticky;21 server 172.25.54.4:8080;22 server 172.25.54.9:8080;23 }[root@server1 conf]# nginx -s reload

server1、server2均需要安装memcached

yum install -y memcached解决存储问题

server1、server2均需要执行下列操作

[root@server1 ~]# /etc/init.d/memcached startStarting memcached:[ OK ][root@server1 logs]# cd[root@server1 ~]# /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /usr/local/javaUsing CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar[root@server1 ~]#

[root@server2 ~]# /etc/init.d/memcached startStarting memcached:[ OK ][root@server2 ~]# /usr/local/tomcat/bin/shutdown.shUsing CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /usr/local/javaUsing CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar[root@server2 ~]#

[root@server1 ~]# cd /usr/local/tomcat/conf/[root@server1 conf]# lsCatalina catalina.policy catalina.properties context.xml logging.properties server.xml tomcat-users.xml web.xml[root@server1 conf]# vim context.xml 35 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"36 memcachedNodes="n1:172.25.54.9:11211,n2:172.25.54.4:11211"37 failoverNodes="n1" ##server2中为n238 requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"39 transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"40 />41 42 </Context>

文件下载地址jar

[root@server1 conf]# cd /usr/local/tomcat/lib/ [root@server1 lib]# lsannotations-api.jar jasper-el.jar minlog-1.2.jar tomcat-dbcp.jarasm-3.2.jarjasper.jar msm-kryo-serializer-1.6.3.jar tomcat-i18n-es.jarcatalina-ant.jarjsp-api.jarreflectasm-1.01.jar tomcat-i18n-fr.jarcatalina-ha.jarkryo-1.04.jar servlet-api.jartomcat-i18n-ja.jarcatalina.jar kryo-serializers-0.10.jarspymemcached-2.7.3.jar tomcat-jdbc.jarcatalina-tribes.jar memcached-session-manager-1.6.3.jartomcat7-websocket.jartomcat-util.jarecj-4.4.2.jar memcached-session-manager-tc6-1.6.3.jar tomcat-api.jar websocket-api.jarel-api.jar memcached-session-manager-tc7-1.6.3.jar tomcat-coyote.jar[root@server1 lib]# rm -f memcached-session-manager-tc6-1.6.3.jar

[root@server2 lib]# cd /usr/local/tomcat/bin/[root@server2 bin]# ./startup.sh Using CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /usr/local/javaUsing CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jarTomcat started.[root@server2 bin]#

[root@server1 lib]# cd /usr/local/tomcat/bin/[root@server1 bin]# ./startup.sh Using CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /usr/local/javaUsing CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jarTomcat started.[root@server1 bin]# cd /usr/local/tomcat/logs/[root@server1 logs]#

[root@server1 logs]# yum install -y telnet

[root@server2 logs]# yum install -y telnet测试工具

测试 server1、2均执行下列操作,并在用浏览器测试前,清理浏览器缓存

/etc/init.d/memcached stop/usr/local/tomcat/bin/shutdown.sh /etc/init.d/memcached start/usr/local/tomcat/bin/startup.sh

[root@server1 ~]# /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /usr/local/javaUsing CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar[root@server1 ~]#

[root@server2 ~]# /etc/init.d/memcached stop

[root@server1 ~]# /usr/local/tomcat/bin/startup.sh Using CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /usr/local/javaUsing CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar[root@server1 ~]# [root@server2 ~]# /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcatUsing CATALINA_HOME: /usr/local/tomcatUsing CATALINA_TMPDIR: /usr/local/tomcat/tempUsing JRE_HOME: /usr/local/javaUsing CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar[root@server2 ~]#

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。