日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Nginx >内容正文

Nginx

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

發布時間:2025/3/19 Nginx 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 //開啟PHP Starting php-fpm done [root@server1 ~]# which nginx /usr/local/lnmp/nginx/sbin/nginx [root@server1 ~]# nginx //開啟Nginx [root@server1 ~]# ls apache-tomcat-7.0.37.tar.gz nginx-1.10.1 cmake-2.8.12.2-4.el6.x86_64.rpm nginx-1.10.1.tar.gz Discuz_X3.2_SC_UTF8.zip nginx-sticky-module-ng gd-devel-2.0.35-11.el6.x86_64.rpm nginx-sticky-module-ng.tar.gz jdk-7u79-linux-x64.tar.gz openresty-1.13.6.1 libmcrypt-2.5.8-9.el6.x86_64.rpm openresty-1.13.6.1.tar.gz libmcrypt-devel-2.5.8-9.el6.x86_64.rpm package.xml memcache-2.2.5 php-5.6.35 memcache-2.2.5.tgz php-5.6.35.tar.bz2 mysql-5.7.11 re2c-0.13.5-1.el6.x86_64.rpm mysql-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]# ls bin games jdk1.7.0_79 lib64 lnmp share etc include lib libexec 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 2015 /usr/local/java/ [root@server1 local]# vim /etc/profile [root@server1 local]# 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@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 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() %>


[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 4 INFO: Starting ProtocolHandler ["ajp-bio-8009"] Aug 07, 2018 10:02:00 AM org.apache.catalina.startup.Catalina start INFO: Server startup in 18610 ms user2 = 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 4 Aug 07, 2018 10:40:11 AM org.apache.catalina.startup.Catalina start INFO: Server startup in 30301 ms user1 = 123 user3 = 345 [root@server2 logs]#

添加sticky函數

  • 添加該函數后,不會存在刷新需要重新連接的問題,不過還是存在存儲的問題
[root@server1 ~]# ls apache-tomcat-7.0.90.tar.gz nginx-1.10.1.tar.gz cmake-2.8.12.2-4.el6.x86_64.rpm nginx-sticky-module-ng Discuz_X3.2_SC_UTF8.zip nginx-sticky-module-ng.tar.gz gd-devel-2.0.35-11.el6.x86_64.rpm openresty-1.13.6.1 jdk-7u79-linux-x64.tar.gz openresty-1.13.6.1.tar.gz libmcrypt-2.5.8-9.el6.x86_64.rpm package.xml libmcrypt-devel-2.5.8-9.el6.x86_64.rpm php-5.6.35 memcache-2.2.5 php-5.6.35.tar.bz2 memcache-2.2.5.tgz re2c-0.13.5-1.el6.x86_64.rpm mysql-5.7.11 test.class mysql-boost-5.7.11.tar.gz test.java nginx-1.10.1 [root@server1 ~]# nginx -s stop [root@server1 ~]# cd nginx-1.10.1 [root@server1 nginx-1.10.1]# make clean rm -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 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@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 stop



[root@server1 ~]# /usr/local/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 [root@server1 ~]# [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 ~]#




總結

以上是生活随笔為你收集整理的Nginx+Tomcat+memcached负载均衡实现seccion存储的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。