Linux下搭建Tomcat+Nginx+Redis

来源:互联网 发布:北京赛车pk10平台源码 编辑:程序博客网 时间:2024/06/05 02:28

Linux下搭建Tomcat+Nginx+Redis

一、部署环境说明

Linux CentOS6、Tomcat7免安装版、Redis-2.8.9.tar.gz、nginx-1.12.0.tar.gz

Redis下载路径:http://download.redis.io/releases/redis-2.8.9.tar.gz

Nginx下载路径:http://nginx.org/download/nginx-1.12.0.tar.gz

 

二、JDK部署

我应用的是免安装Linux64JDK,解压后需要将bin下文件chmod赋予权限;

之后,配置环境变量,保存退出后source生效,查看版本是否为你的。

 

# vi /etc/profile # 在unset i 前增加4行配置,如下。

      exportJAVA_HOME=/datared/java/jdk1.7.0_25

      exportJRE_HOME=$JAVA_HOME

      exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

      export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

 三、Tomcat部署

1,  将Tomcat解压,修改conf/server.xml的三个端口信息,如下:

三个端口要不一样而且没有被其他服务占用的端口即可。

2,  在webapps下创建了一个临时项目sso,sso下创建两个文件,一个index.jsp和clearSession.jsp,用于观察session的共享情况,代码如下:

3,  文件index.jsp内容:

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>无标题文档</title>

</head>

<body>

<h1>这个是第1个页面</h1><br>

<%

         if (session.getAttribute("ss") == null) {

                   session.setAttribute("ss", "page1 session");

         }

         out.print("session ss is " + session.getAttribute("ss").toString()+"<br/>");

         out.print("session id is " + session.getId());

%>

</body>

</html>

4,  文件clearSession.jsp内容:

<%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<title>无标题文档</title>

</head>

<body>

<h1>这个是第1个页面</h1><br>

<%

         if (session.getAttribute("ss") != null) {

                   session.removeAttribute("ss");

         }

%>

session is clear.

</body>

</html>

5,  运行该tomcat,执行bin下startup.sh,访问看是否正常。如果一起正常,将这个tomcat复制一份或者多份,我复制两份,共三个tomcat。

# cp –r ./apache-tomcat-7.0.42_1 ./apache-tomcat-7.0.42_2

# cp –r ./apache-tomcat-7.0.42_1 ./apache-tomcat-7.0.42_3

6,  将另外两个tomcat中的端口修改,我是改成8021|8020|8022和8031|8030|8032,同时将index.jsp下图标红处分别改成相应的2和3.

7,  三个tomcat都启动,分别确认三个页面访问正常,不同页面,不同sessionId。

 

四、Nginx部署

1,  下载并解压

# wget http://nginx.org/download/nginx-1.12.0.tar.gz#如果已存在就不用从网上获取

# tar-xzvf nginx-1.12.0

# cd nginx-1.12.0

2,  安装

# ./configure--user=www --group=www --prefix=/datared/nginx --with-http_stub_status_module--with-http_ssl_module --with-http_gzip_static_module

# make && make install

其中—prefix是安装目录,可以根据需求修改。

如果在检测环境时提示缺少包,那就需要提前yuminstall一下依赖的包了。

3,  目录,在刚安装完是没有*_temp文件夹的。

4,  配置反向代理,nginx下的conf/nginx.conf。

代码:

upstreamsso {

         server localhost:8010;

         server localhost:8020;

         server localhost:8030;

         }

 

location/sso {

        index index.jsp;

                  proxy_pass   http://sso;

        client_max_body_size 100m;

                   proxy_set_headerHost $http_host;

                   proxy_set_headerX-Real-IP $remote_addr;

                   proxy_set_headerX-Forwarded-For $proxy_add_x_forwarded_for;

}

启动nginx,切换到sbin目录下(具体目录根据实际情况来):

# ./nginx-c /datared/nginx/conf/nginx.conf

# ps –aux| grep nginx #可以查看到进程

# lsof -i:800# 可以查看到端口占用情况

启动成功后,访问试试。访问时,会在三个tomcat下的页面之间调换,不同页面,不同sessionId。如下图所示。

五、Redis部署

1,  下载并解压

# wget http://download.redis.io/releases/redis-2.8.9.tar.gz# 如果已存在就不用从网上获取

# tar-xzvf redis-2.8.9.tar.gz

# cd redis-2.8.9

# make

# cd src

# make install

2,  转移redis编译后的文件到指定文件目录下,创建一个bin一个etc,将必要文件(redis.conf配置文件和bin需要的文件)进行拷贝。

# mkdir /datared/redis/bin

# mkdir /datared/redis/etc

# cp /datared/redis-2.8.9/redis.conf/datered/redis

# cd /datared/redis-2.8.9/src/

# cp mkreleasehdr.shredis-benchmark redis-check-aof redis-check-dump  redis-cli redis-sentinel redis-server/datared/redis/bin

3,  启动redis,进入到bin/redis-server中,执行下列命令启动:

#./redis-server /datared/redis/redis.conf

4,   退出后,发现redis也跟着退出了,解决如下:修改redis.conf文件daemonize由no改为yes,这样便可以在后台运行啦。

六、Tomcat修改配置共享Session

1,  找到Tomcat7下cong/context.xml文件,在</Context>结束前增加下列配置。

<Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />

<Manager className="com.radiadesign.catalina.session.RedisSessionManager"

                   host="127.0.0.1"

                   port="6379"

                   database="3"

                   maxInactiveInterval="60" />

2,  将之前准备好的三个Java依赖包分别复制到三个Tomcat目录的lib下,否则Tomcat启动会报错的。

3,  重启所有Tomcat,在访问800服务,就会发现sessionId始终是一个,session的内容共享了。

 


原创粉丝点击