您的位置:首页 > 数据库 > Redis

Linux下搭建Nginx+Tomcat+Redis 搭建分布式项目

2018-01-24 11:05 453 查看
Linux下搭建Nginx+Tomcat+Redis搭建分布式项目

1.     所需软件版本及个数

 

Linux版本:Centos6.5      数量 :1

Tomcat版本:apache-tomcat-7.0.82.tar.gz     数量:3

Redis版本:redis-2.8.9.tar.gz        数量:1

Nginx版本:nginx-1.4.2.tar.gz        数量:1

Jdk版本:java version "1.8.0_131"   数量:1

 

软件安装包和所需jar包地址:
https://pan.baidu.com/s/1eUm0n5o
密码:33a2
目录下    linux安装环境/linux搭建nginx+tomcat+redis安装软件和jar包.rar  

2.     软件存放位置(根据自己需要而定)

在搭建环境的过程中,我再/opt目录下创建了一个目录software,以后所有的安装包都放在此目录下。 完整存放目录为/opt/software

3.     各个软件安装过程

3.1           jdk安装

copy文件:将jdk-linux-i586.tar.gz文件 copy 到/opt/software里

解压jdk:

解压jdk  解压命令 :tar–xzvf  jdk-linux-i586.tar.gz。在/opt/software下创建javahome 文件夹, 然后将jdk解压之后的文件拷贝到此文件夹下。

配置java环境变量:

配置环境变量(配置环境变量的文件 /etc/profile)

使用vi编辑器打开 环境变量的配置文件 vi /etc/profile

在最后面 加上下面的命令(具体的javahome的位置由环境而定)

#set java environment

JAVA_HOME=/opt/software/javahome/jdk1.8.0_131

JRE_HOME=/opt/software/javahome/jdk1.8.0_131/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOMEPATH CLASSPATH

保存退出

启用刷新配置 source /etc/profile

 

测试jdk是否安装成功:

 

命令 java –version  如下显示了jdk的版本号就证明 jdk安装成功了。

[root@hserver1 ~]# java-version

java version"1.8.0_131"

Java(TM) SE RuntimeEnvironment (build 1.8.0_131-b11)

Java HotSpot(TM) Client VM(build 25.131-b11, mixed mode)

 

3.2           Tomcat安装

 

注意事项:

安装tomcat的过程与安装jdk的过程大致相同,唯一不同的是在搭建Nginx环境的过程中,因为需要安装多个tomcat来进行测试。如果tomcat的环境变量配置有问题的话会造成一台tomcat启动,另一台机器会启动不起来的问题。

多台tomcat运行,tomcat环境变量配置(以两台tomcat为例):

     端口号冲突:由于tomcat是复制过来的,故tomcat启动的端口号是一样的,首先解决就应该是端口号的问题。在tomcat解压目录下 /conf/server.xml 在如下图所示的位置修改端口号(修改三处)

我在此将端口号分别修改成了8011,8010,8012,其他两台tomcat我分别修改为了,

tomcat2:8021,8020,8022 

tomcat3:8031,8030,8032





 

环境变量配置<
f1d1
/span> :打开 profile文件加入如下配置

#firstTomcat

CATALINA_BASE=/opt/software/tomcat

CATALINA_HOME=/opt/software/tomcat

TOMCAT_HOME=/opt/software/tomcat

export CATALINA_BASECATALINA_HOME TOMCAT_HOME

#secondTomcat

CATALINA_2_BASE=/opt/software/tomcat2

CATALINA_2_HOME=/opt/software/tomcat2

TOMCAT_2_HOME=/opt/software/tomcat2

export CATALINA_2_BASECATALINA_2_HOME TOMCAT_2_HOME

#thirdTomcat

CATALINA_3_BASE=/opt/software/tomcat3

CATALINA_3_HOME=/opt/software/tomcat3

TOMCAT_3_HOME=/opt/software/tomcat3

export CATALINA_3_BASECATALINA_3_HOME TOMCAT_3_HOME

第一个默认的tomcat的环境变量,不需修改,只要修改tomcat2和tomcat3文件下的文件即可。

具体修改文件 进入tomcat2的安装目录,  使用vi编辑器打开 /bin/catalina.sh 加入如下的配置(tomcat3同理)

exportCATALINA_BASE=$CATALINA_2_BASE

exportCATALINA_HOME=$CATALINA_2_HOME

加入位置如下图所示:



 

新建测试项目sso测试tomcat启动是否正常:

测试项目我是直接复制webapps下的examples 文件修改名称为sso

在sso下为了方便以后整合后的测试,新建了两个jsp,index.jsp和clearSession.jsp

(借鉴博客地址
http://blog.csdn.net/winwll/article/details/78341867?locationNum=9&fps=1)
如下图所示



文件具体内容

Index.jsp

<%@ pagecontentType="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">

 

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

 

<head>

 

<metahttp-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>

clearSession.jsp

<%@ pagecontentType="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">

 

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

 

<head>

 

<metahttp-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>

启动测试:

启动命令   在bin下 输入 ./startup.sh

测试结果如下图所示







3.3           安装Nginx(所有包均下载到software下)

安装nginx借鉴博客原地址:https://www.cnblogs.com/www-vnote-net/p/6277942.html

 

一、准备nginx的安装环境

 

     yum -y install gcc gcc-c++ autoconf automake make

 

     yum -y install zlib zlib-devel openssl openssl--devel pcre pcre-devel

 

下面正式开始

 

 ---------------------------------------------------------------------------

 

一般我们都需要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

 

跟Windows安装软件一样,可以自定义目录,这里以/soft  为例

 

一:Nginx安装

 

[root@user ~]# cd  /soft

 

1.安装PCRE库

 
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/下载最新的 PCRE 源码包,使用下面命令下载编译和安装 PCRE 包:

 

[root@user ~]#  cd /opt/software

 

[root@user ~]#  wgetftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gz

 

[root@user ~]# tar -zxvf pcre-8.40.tar.gz

 

[root@user ~]# cd pcre-8.40

 

[root@user ~]# ./configure

 

[root@user ~]# make

 

[root@user ~]#   make install

 

2.安装zlib库

 
http://zlib.net/zlib-1.2.8.tar.gz 下载最新的 zlib 源码包,使用下面命令下载编译和安装 zlib包:

 

[root@user ~]# cd /opt/software

 

[root@user ~]#wgethttp://zlib.net/zlib-1.2.10.tar.gz

 

[root@user ~]#tar -zxvf zlib-1.2.10.tar.gz

 

[root@user ~]# cd zlib-1.2.10

 

[root@user ~]#./configure

 

[root@user ~]#make

 

[root@user ~]#make install

 

3.安装ssl(某些vps默认没装ssl)

 

[root@user ~]#cd /opt/software

 

[root@user ~]#wgethttp://www.openssl.org/source/openssl-fips-2.0.14.tar.gz

 

[root@user ~]#tar -zxvfopenssl-fips-2.0.14.tar.gz

 

[root@user ~]#yum -y install opensslopenssl-devel

 

4.安装nginx

 

 Nginx 一般有两个版本,分别是稳定版和开发版,您可以根据您的目的来选择这两个版本的其中一个。

 

 注意:nginx的默认安装路径是 /usr/local/nginx  其运行文件在其/usr/local/nginx/sbin目录下面

 

[root@user ~]#  cd /opt/software

 

[root@user ~]# wgethttp://nginx.org/download/nginx-1.4.2.tar.gz

 

[root@user ~]# tar -zxvf nginx-1.4.2.tar.gz

 

[root@user ~]# cd nginx-1.4.2

 

[root@user ~]# ./configure

 

[root@user ~]#  make

 

[root@user ~]#  make install

 

如果直接执行  ./configure则nginx安装到默认路径,自定义安装步骤如下,安装到/soft/nginx目录
[root@user ~]#  ./configure --sbin-path=/soft/nginx/nginx \--conf-path=/soft/nginx/nginx.conf \--pid-path=/soft/nginx/nginx.pid \--with-http_ssl_module \--with-pcre=/soft/pcre-8.40 \--with-zlib=/soft/zlib-1.2.10 \--with-openssl=/soft/openssl-fips-2.0.14
注意与安装的版本号、目录一致
5.启动
 确保系统的 80 端口没被其他程序占用,默认路径安装运行/usr/local/nginx/sbin/nginx命令来启动 Nginx。
 
说明:
 
由于我本身是按照默认安装的启动nginx
的命令是 ./usr/local/nginx/sbin/nginx
使用80 端口访问如下图所示就证明安装nginx成功了,由于我已经改了端口号,图片上显示的端口号不是80,而是800,这个在后面整合的时候会说到。



 

 

3.4           安装redis

1,  下载并解压

[root@hserver1 bin]#cd /opt/software

[root@hserver1 bin]# wgethttp://download.redis.io/releases/redis-2.8.9.tar.gz 如果已存在就不用从网上获取

 

[root@hserver1 bin]# tar-xzvfredis-2.8.9.tar.gz

 

[root@hserver1 bin]# cd redis-2.8.9

 

[root@hserver1 bin]# make

 

[root@hserver1 bin]# cd src

 

[root@hserver1 bin]# make install

 

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

#mkdir /opt/software/redis

# mkdir /opt/software/redis/bin

# mkdir  /opt/software/redis/etc

 

# cp /opt/software/redis-2.8.9/redis.conf  /opt/software/redis

 

# cd /op/redis-2.8.9/src/

 

# cp mkreleasehdr.sh redis-benchmarkredis-check-aof redis-check-dump redis-cli redis-sentinel redis-server/opt/software/redis/bin

 

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

 

# cd /opt/software/redis/bin

#  ./redis-server/opt/software/redis/redis.conf

 

4.        测试启动结果展示借用别人的图



如果显示如上所示的图,证明redis搭建成功了。

 

注意事项:

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

 

4.tomcat交给Nginx管理

4.1           配置反向代理,修改nginx下的conf/nginx.conf。

Nginx默认安装目录/usr/local/nginx  nginx.conf文件在cd /usr/local/nginx/conf目录下

加入如下设置(具体放置位置如下图所示,切记粘贴的时候小心空格丢失)

#gzip on;

   upstream  sso {

 

        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_header Host$http_host;

 

                   proxy_set_header X-Real-IP$remote_addr;

 

                   proxy_set_headerX-Forwarded-For $proxy_add_x_forwarded_for;

 

}

 


 

配置完成后就可以测试nginx管理tomcat了

 

4.2           测试nginx管理tomcat

输入http://ip:800/sso/测试  可以看到三个tomcat都可以通过nginx来访问







5.     Tomcat修改配置共享Session

5.1           导入jar包

向三个tomcat文件夹lib中首先导入三个jar包

分别为

commons-pool2-2.4.2.jar

jedis-2.8.2.jar

tomcat-redis-session-manage-tomcat7.jar

 

5.2           配置tomcat中context.xml

文件位置 tomcat/conf/context.xml (三个tomcat都要修改)

 

在文件的</Context> 前加入如下配置 (配置和图示如下)

<ValveclassName="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve"/>

 

<ManagerclassName="com.orangefunction.tomcat.redissessions.RedisSessionManager"

 

                   host="127.0.0.1"

 

                   port="6379"

 

                   database="3"

 

                  maxInactiveInterval="60" />



5.3           测试三个tomcatsession是否一致







6.     参考资料(安装过程遇到的问题)

整体参考:

http://blog.csdn.net/winwll/article/details/78341867?locationNum=9&fps=1

 

部分问题:

https://www.cnblogs.com/act123/archive/2011/08/22/2148819.html

http://blog.csdn.net/yzh54ak/article/details/5787808

http://blog.csdn.net/qq_27028561/article/details/51691284

http://blog.csdn.net/testcs_dn/article/details/51461750

http://www.linuxidc.com/Linux/2014-04/100755.htm

安装nginx参考:

 
https://www.cnblogs.com/www-vnote-net/p/6277942.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐