Nginx+Tomcat+memcached负载均衡实现seccion存储
生活随笔
收集整理的這篇文章主要介紹了
Nginx+Tomcat+memcached负载均衡实现seccion存储
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實驗環境:
rhel6.5
server1:172.25.54.9 nginx+php+memcached+tomcat
server2:172.25.54.4 memcached+tomcat
server1配置tomcat
編輯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 test Hello tutu! [root@server1 ~]# tar zxf apache-tomcat-7.0.37.tar.gz -C /usr/local/ [root@server1 ~]# cd /usr/local/ [root@server1 local]# ls apache-tomcat-7.0.37 etc include jdk1.7.0_79 lib64 lnmp share bin games java lib libexec sbin src [root@server1 local]# ln -s apache-tomcat-7.0.37/ tomcat [root@server1 local]# cd tomcat/ [root@server1 tomcat]# ls bin CONTRIBUTING.md logs RELEASE-NOTES webapps BUILDING.txt lib NOTICE RUNNING.txt work conf LICENSE README.md temp [root@server1 tomcat]# bin/startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@server1 tomcat]# cd webapps/ROOT/ [root@server1 ROOT]# ls asf-logo-wide.svg bg-nav-item.png favicon.ico tomcat.css tomcat-power.gif bg-button.png bg-nav.png index.jsp tomcat.gif tomcat.svg bg-middle.png bg-upper.png RELEASE-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 ~]# ls apache-tomcat-7.0.37.tar.gz jdk-7u79-linux-x64.tar.gz [root@server2 ~]# vim /etc/profile [root@server2 ~]# cat /etc/profile |tail -n 3 export JAVA_HOME=/usr/local/java export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export 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]# ls apache-tomcat-7.0.37 etc include lib libexec share bin games jdk1.7.0_79 lib64 sbin src [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.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat 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() %>
測試——刷新一次需要重新連接一次
添加sticky函數
- 添加該函數后,不會存在刷新需要重新連接的問題,不過還是存在存儲的問題
server1、server2均需要安裝memcached
yum install -y memcached 解決存儲問題
server1、server2均需要執行下列操作
[root@server1 ~]# /etc/init.d/memcached start Starting memcached: [ OK ] [root@server1 logs]# cd [root@server1 ~]# /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar [root@server1 ~]# [root@server2 ~]# /etc/init.d/memcached start Starting memcached: [ OK ] [root@server2 ~]# /usr/local/tomcat/bin/shutdown.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using 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]# ls Catalina 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]# ls annotations-api.jar jasper-el.jar minlog-1.2.jar tomcat-dbcp.jar asm-3.2.jar jasper.jar msm-kryo-serializer-1.6.3.jar tomcat-i18n-es.jar catalina-ant.jar jsp-api.jar reflectasm-1.01.jar tomcat-i18n-fr.jar catalina-ha.jar kryo-1.04.jar servlet-api.jar tomcat-i18n-ja.jar catalina.jar kryo-serializers-0.10.jar spymemcached-2.7.3.jar tomcat-jdbc.jar catalina-tribes.jar memcached-session-manager-1.6.3.jar tomcat7-websocket.jar tomcat-util.jar ecj-4.4.2.jar memcached-session-manager-tc6-1.6.3.jar tomcat-api.jar websocket-api.jar el-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/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat started. [root@server2 bin]# [root@server1 lib]# cd /usr/local/tomcat/bin/ [root@server1 bin]# ./startup.sh Using CATALINA_BASE: /usr/local/tomcat Using CATALINA_HOME: /usr/local/tomcat Using CATALINA_TMPDIR: /usr/local/tomcat/temp Using JRE_HOME: /usr/local/java Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar Tomcat 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@server2 ~]# /etc/init.d/memcached stop
總結
以上是生活随笔為你收集整理的Nginx+Tomcat+memcached负载均衡实现seccion存储的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LNMP架构环境搭建之PHP、Nginx
- 下一篇: Nginx 正向代理与反向代理区别