nginx+tomcat+memcached

一.配置nginx

在server3中:
下载安装包

nginx-1.14.0.tar.gz

修改配置文件

[root@server3 ~]# tar zxf nginx-1.14.0.tar.gz 
[root@server3 ~]# cd nginx-1.14.0
[root@server3 nginx-1.14.0]# vim auto/cc/gcc
# debug
#CFLAGS="$CFLAGS -g"

[root@server3 nginx-1.14.0]# vim src/core/nginx.h
#define nginx_version      1014000
#define NGINX_VERSION      "1.14.0"
#define NGINX_VER          "nginx"

这里写图片描述
这里写图片描述
安装nginx插件

[root@server3 nginx-1.14.0]# yum install -y gcc pcre-devel openssl-devel

编译安装

[root@server3 nginx-1.14.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio
[root@server3 nginx-1.14.0]# make && make install
[root@server3 nginx-1.14.0]# ln -s /usr/local/nginx/sbin/nginx /sbin/

修改配置文件

[root@server3 ~]# useradd nginx 
[root@server3 ~]# vim /usr/local/nginx/conf/nginx.conf

 2 user  nginx  nginx;    
 17 http {
 18     upstream tomcat {
 19     server 172.25.66.3:8080;
 20     server 172.25.66.4:8080;
 21     }
 63         location ~ \.jsp$ {
 64             proxy_pass   http://tomcat;       
 65         }

这里写图片描述
这里写图片描述
这里写图片描述
测试:

[root@server3 nginx-1.14.0]# nginx -t
[root@server3 nginx-1.14.0]# nginx -s reload
[root@server3 nginx-1.14.0]# nginx
[root@server3 nginx-1.14.0]# nginx -s stop

这里写图片描述

二.配置java环境

下载jdk压缩包jdk-7u79-linux-x64.tar.gz 并解压到/usr/local/

[root@server3 ~]# tar zxf jdk-7u79-linux-x64.tar.gz -C /usr/local/
[root@server3 ~]# cd /usr/local/
[root@server3 local]# ln -s jdk1.7.0_79/ java
[root@server3 local]# ls
[root@server3 local]# ll

这里写图片描述
这里写图片描述
加载环境变量

[root@server3 local]# vim /etc/profile
[root@server3 local]# source /etc/profile

这里写图片描述
编写java脚本

[root@server3 ~]# vim test.java
public class test {
        public static void main(String[] args) {
                System.out.println("Hello World!");
        }
}

这里写图片描述
编译并运行java脚本

[root@server3 ~]# javac test.java    
[root@server3 ~]# java test

这里写图片描述

三.配置tomcat

下载tomcat软件包apache-tomcat-7.0.90.tar.gz并解压到/usr/local/

[root@server3 ~]# tar zxf apache-tomcat-7.0.90.tar.gz -C /usr/local/
[root@server3 ~]# cd /usr/local/
[root@server3 local]# ln -s apache-tomcat-7.0.90/ tomcat

加载环境变量

[root@server3 local]# cd tomcat/bin/
[root@server3 bin]# ./startup.sh

这里写图片描述
编写tomcat默认发布页面

[root@server3 ROOT]# pwd
/usr/local/tomcat/webapps/ROOT
[root@server3 ROOT]# vim test.jsp
Server3 time is: <%=new java.util.Date() %>

这里写图片描述
在server4中:
一.配置jdk环境
二.配置tomcat
以上与server3的配置相同

[root@server4 ~]# vim /usr/local/tomcat/webapps/ROOT/test.jsp
Server4 time is: <%=new java.util.Date() %>

这里写图片描述
测试:
在浏览器中:
访问172.25.51.3/test.jsp
这里写图片描述
这里写图片描述

基于访问ip的hash路由策略实现tomcat

在server3:
编写tomcat默认发布页面

[root@server3 ROOT]# cd /usr/local/tomcat/webapps/ROOT
[root@server3 ROOT]# 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>

在server4上和server3相同配置
测试:
这里写图片描述
这里写图片描述
当server3主机down时

[root@server3 tomcat]# pwd
/usr/local/tomcat
[root@server3 tomcat]# bin/startup.sh       ##开启
[root@server3 tomcat]# bin/shutdown.sh      ##关闭

这里写图片描述

利用nginx实现tomcat集群和session同步

在server3:
1.确认server3是否安装sticky模块,若没有,则编译安装

[root@server3 ~]# nginx -V  ##查看nginx安装信息

这里写图片描述
2.添加sticky模块

[root@server3 ~]# tar zxf nginx-sticky-module-ng.tar.gz
[root@server3 nginx-1.14.0]# ./configure --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module --with-threads --with-file-aio --add-module=/root/nginx-sticky-module-ng
[root@server3 nginx-1.14.0]# make && make install

3.修改配置文件,实现基于 Cookie 的 Session Sticky 的功能

[root@server3 ~]# vim /usr/local/nginx/conf/nginx.conf
 17 http {
 18     upstream tomcat {
 19     sticky;
 20     server 172.25.66.3:8080;
 21     server 172.25.66.4:8080;
 22     }
[root@server3 ~]# nginx -s reload

4.安装memcached并开启服务

[root@server3 ~]# yum install -y memcached
[root@server3 ~]# /etc/init.d/memcached start

5.下载memcached与tomcat插件

[root@server3 ~]# cd /usr/local/tomcat/lib/
[root@server3 lib]# rm -fr memcached-session-manager-tc6-1.6.3.jar ##mamcat版本1.7,删除不匹配的1.6版本
[root@server3 lib]# ls
annotations-api.jar  jsp-api.jar                              tomcat7-websocket.jar
asm-3.2.jar          kryo-1.04.jar                            tomcat-api.jar
catalina-ant.jar     kryo-serializers-0.10.jar                tomcat-coyote.jar
catalina-ha.jar      memcached-session-manager-1.6.3.jar      tomcat-dbcp.jar
catalina.jar         memcached-session-manager-tc7-1.6.3.jar  tomcat-i18n-es.jar
catalina-tribes.jar  minlog-1.2.jar                           tomcat-i18n-fr.jar
ecj-4.4.2.jar        msm-kryo-serializer-1.6.3.jar            tomcat-i18n-ja.jar
el-api.jar           reflectasm-1.01.jar                      tomcat-jdbc.jar
jasper-el.jar        servlet-api.jar                          tomcat-util.jar
jasper.jar           spymemcached-2.7.3.jar                   websocket-api.jar

6.修改配置文件

[root@server3 lib]# vim /usr/local/tomcat/conf/context.xml
 34 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
 35 memcachedNodes="n1:172.25.66.3:11211,n2:172.25.66.4:11211"
 36 failoverNodes="n1"    ##默认n2,故障n1           
 37 requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
 38 transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
 39 />

7.关闭并再次开启tomcat服务

[root@server3 lib]# cd /usr/local/tomcat/
[root@server3 tomcat]# bin/shutdown.sh 
[root@server3 tomcat]# bin/startup.sh

在server4中
1.安装并开启memcached服务
2.下载memcached与tomcat插件
3.修改配置文件

[root@server4 lib]# vim /usr/local/tomcat/conf/context.xml
 34 <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"
 35 memcachedNodes="n1:172.25.66.3:11211,n2:172.25.66.4:11211"
 36 failoverNodes="n2"               
 37 requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$"
 38 transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"
 39 />

4.关闭并再次开启tomcat

[root@server4 lib]# cd /usr/local/tomcat/
[root@server4 tomcat]# bin/shutdown.sh 
[root@server4 tomcat]# bin/startup.sh

以上未展示部分与server3步骤相同
测试:
访问http://172.25.66.3/test.jsp
在提交页面用户信息过程中,交替访问server3、server4的后端主机,且信息同步,不丢失
这里写图片描述
在虚拟机server4

yum install telnet -y
telnet localhost 11211

这里写图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值