单点登录集群安装教程

在开发中的开源项目JeePlatform:https://github.com/u014427391/jeeplatform

欢迎start(s收藏),打算集成单点登录到自己的开源项目里,所以先搭建环境

【集群简介】

使用nginx作为负载均衡,使用redis存储tomcat session,来实现集群中tomcat session的共享,使用redis作为cas ticket的仓库,来实现集群中cas ticket的一致性。

【安装教程】

【keepalived安装】

下载keepalived到/usr/local/src

tar -xzvf keepalived-1.2.19.tar.gz
cd /usr/local/src/keepalived-1.2.19

配置

./configure --prefix=/usr/local/keepalived

编译

make && make install

复制建立服务启动脚本,以便使用service命令控制之:

cp /usr/local/keepalived/etc/rc.d/init.d/keepalived /etc/rc.d/init.d/
chmod +x /etc/init.d/keepalived
cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
mkdir /etc/keepalived
cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
cp /usr/local/keepalived/sbin/keepalived /usr/sbin/

启动keepalived

service keepalived start|stop

【nginx安装】

nginx安装之前要先安装pcre、openssl、zlib

注意:./configure --prefix=/usr/local/keepalived configure:error:!!!

OpenSSL is not properly installed on your system. !!! !!! Can not

include OpenSSL headers files.

解决方法:安装openssl,同时pcre也一起安装一下,gcc、zlib没有安装也可以安装一下

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

解压

下载nginx到/usr/local/src

tar -xzvf nginx-1.11.4.tar.gz
cd nginx-1.11.4

执行配置文件

./configure

编译

make && make install

启动

cd /usr/local/nginx/sbin
./nginx

重启

cd /usr/local/nginx/sbin
./nginx -s reload

检验配置文件是否正确

检验:

ps -ef|grep nginx
/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf

或者

cd /usr/local/nginx/sbin
./nginx -t

【Tomcat集群】

tar -xzvf apache-tomcat-7.0.82.tar.gz

cp -r apache-tomcat-7.0.82 tomcat2

mv apache-tomcat-7.0.82 tomcat1

修改其中一个tomcat的配置文件:vi conf/server.xml

<Server port="8005"shutdown="SHUTDOWN"> 改为 8006 <Connector

port="8080"protocol="HTTP/1.1" 改为 8081 <Connector

port="8009"protocol="AJP/1.3" 改为 8010

创建tomcat应用文件夹

mkdir /opt/tomcat1/webapps/www

mkdir /opt/tomcat2/webapps/www

在www文件夹上传index.jsp测试文件

<%@ page language="java" %>
<html>
  <head><title>Tomcat1</title></head>
  <body>
    <table align="centre" border="1">
      <tr>
        <td>Session ID</td>
        <td><%= session.getId() %></td>
      </tr>
      <tr>
        <td>Created on</td>
        <td><%= session.getCreationTime() %></td>
     </tr>
    </table>
  </body>
</html>
sessionID:<%=session.getId()%>
<br>
SessionIP:<%=request.getServerName()%>
<br>
SessionPort:<%=request.getServerPort()%>
<%
out.println("This is Tomcat Server 1");
%>

访问Tomcat1:http://ip1:8080/www/index.jsp,测试是否成功

同理,在tomcat2的www文件夹里也上传index.jsp测试文件

<%@ page language="java" %>
<html>
  <head><title>Tomcat2</title></head>
  <body>
    <table align="centre" border="1">
      <tr>
        <td>Session ID</td>
        <td><%= session.getId() %></td>
      </tr>
      <tr>
        <td>Created on</td>
        <td><%= session.getCreationTime() %></td>
     </tr>
    </table>
  </body>
</html>
sessionID:<%=session.getId()%>
<br>
SessionIP:<%=request.getServerName()%>
<br>
SessionPort:<%=request.getServerPort()%>
<%
out.println("This is Tomcat Server 2");
%>

访问Tomcat2:http://ip2:8081/www/index.jsp

给Tomcat启动文件添加权限

cd /opt/tomcat1/bin && chmod u+x *.sh
cd /opt/tomcat2/bin && chmod u+x *.sh

cd到tomcat的bin目录下面,启动

./startup.sh

【Redis安装】

因为RocketMQ是基于Java开发的,所以安装RocketMQ之前,我们需要先安装JDK,因为服务器一般采用Linux,所以本博客只介绍基于Linux系统的教程

1.在/usr/目录下创建java目录

mkdir /usr/java

进入java目录

cd /usr/java

2.下载jdk到/usr/java目录,然后tar解压(可以使用xftp在本地下载jdk,或者使用命令curl -O url下载)

tar -zxvf jdk-8u102-linux-x64.tar.gz

3.设置环境变量vi编辑

vi /etc/profile

profile文件加入如下配置,如何按esc退出,:wq!保持

export JAVA_HOME=/usr/java/jdk1.8.0_102
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib

让修改生效

source /etc/profile

验证jdk有效性

java -version

假如系统有安装yum,就可以直接使用yum install java-1.7.0-openjdk下载jdk

设置环境变量,其它操作同上

export JAVA_HOME=/usr/java/jdk1.8.0_102
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib

然后开始Redis安装

下载文件:

wget http://download.redis.io/releases/redis-3.2.8.tar.gz

解压

tar xzf redis-3.2.8.tar.gz

cd redis-3.2.8

编译:make

如果遇到以下截图中的报错,将make改为make MALLOC=libc;

可手动拷贝redis-server、redis-cli、redis-check-aof、redis-check-dump等至/usr/local/bin目录下,也可执行make install

Redis配置

负责初始化文件到/etc/rc.d/init.d/redis

cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis

chmod +x /etc/init.d/redis

mkdir -p/etc/redis/
cp redis.conf /etc/redis/6379.conf
#!/bin/sh
#添加改配置
#chkconfig: 2345 80 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem. 

REDISPORT=6379
#修改Redis-server路径
EXEC=/usr/local/redis/bin/redis-server
#修改Redis-cli路径
CLIEXEC=/usr/local/redis/bin/redis-cli 

PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF="/etc/redis/${REDISPORT}.conf" 

case "$1" in
    start)
        if [ -f $PIDFILE ]
        then
                echo "$PIDFILE exists, process is already running or crashed"
        else
                echo "Starting Redis server..."
                $EXEC $CONF & #加入&符号,使Redis服务后台运行
        fi
        ;;
    stop)
        if [ ! -f $PIDFILE ]
        then
                echo "$PIDFILE does not exist, process is not running"
        else
                PID=$(cat $PIDFILE)
                echo "Stopping ..."
                $CLIEXEC -p $REDISPORT shutdown
                while [ -x /proc/${PID} ]
                do
                    echo "Waiting for Redis to shutdown ..."
                    sleep 1
                done
                echo "Redis stopped"
        fi
        ;;
    *)
        echo "Please use start or stop as first argument"
        ;;
esac 
 注意:添加&符号的作用是使Redis服务后台运行,否则,启动Redis服务时,占据在前台,占用了主用户界面,造成其它的命令执行不了

添加Redis服务

chkconfig --add redis

设置Redis全局

vi /etc/profile

export PATH="$PATH:/usr/local/redis/bin"

. /etc/profile

建议(本博客还是默认使用6379端口):将/etc/redis/6379.conf这个文件下载到本地,然后修改下面截图中的配置信息,端口号一定要修改,如果使用默认的端口号,放到阿里云上面会被植入木马,导致cpu一直100%;

默认是只有127.0.0.1的ip能访问Redis服务器的,即本机,要远程使用必须注释下面一行

添加日志文件路径,记得创建相关目录

设置一下Redis的密码

Redis启动

service redis start

检测Redis是否启动

ps -ef | grep redis

Redis客户端使用

redis-cli

这里可以使用RedisDesktopManager客户端软件连接Redis服务器

【Nginx负载均衡】

cd /usr/local/nginx/conf,找到nginx.cong配置文件

在http{}里面加入,ip1就是你的一台服务器的ip,ip2同理

upstream  mynginxserver{
server ip1:8080 weight=1 max_fails=1 fail_timeout=10s;
server ip2:8081 weight=2 max_fails=1 fail_timeout=10s;
}

upstream可以自己定义名称

然后再http{}的server{}里修改,加入proxy_pass

location / {
        proxy_pass http://mynginxserver;
            root   html;
            index  index.html index.htm index.jsp;
        }

然后重启nginx

重启

cd /usr/local/nginx/sbin

./nginx -s reload

这时就可以实现nginx反向代理了

访问Tomcat1:http://ip1:8080/www/index.jsp

访问Tomcat2:http://ip2:8081/www/index.jsp

访问nginx代理的tomcat集群:http://ip1/www/index.jsp

刷新页面发现,tomcat1和tomcat2的页面会切换,但是sessionID是会变的,然后我们实现基于Redis的会话共享

【Redis会话共享】

下载实现Redis+Tomcat会话共享的jar,commons-logging-1.2.jar、commons-pool2-2.4.2.jar、jedis-2.8.2.jar、tomcat-redis-session-manage-tomcat7.jar、tomcat-juli.jar、tomcat-juli-adapters.jar

copy这些jar到tomcat的lib文件夹下面,再将tomcat-juli.jar、tomcat-juli-adapters.jar放在bin文件夹下面

在tomcat的conf的context.xml的里加入如下配置

<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
    <Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
             host="123.207.63.192"
             port="6379"
             database="0"
             password="redispassw0rd"
             maxInactiveInterval="60" /> 

刷新页面发现,tomcat1和tomcat2的页面会切换,但是sessionID的不变的,说明Session共享实现了

参考教程:

单点登录集群:https://www.cnblogs.com/zhengbin/p/5488415.html

Redis安装教程:http://blog.csdn.net/ludonqin/article/details/47211109

Tomcat+Nginx+Redis会话共享实现:http://blog.csdn.net/grhlove123/article/details/48047735

Tomcat+Nginx+Redis实现负载均衡、会话共享:

https://www.cnblogs.com/zhrxidian/p/5432886.html

时间: 2024-11-07 07:30:00

单点登录集群安装教程的相关文章

CDH5 集群安装教程

一.虚拟机的安装和网络配置. 1.虚拟机安装. 2.安装CentOS-6.5 64位版本. 桥接模式: Master: 内存:3G: 硬盘容量40G: 4核: Slave: 内存2G: 硬盘容量30G: 2核: 3.网络配置(master,slave) 1)进入root账号 su - root 输入密码: vi /etc/sysconfig/network 2)关闭防火墙 vi /etc/sysconfig/selinux #SELinux=disable Service iptables st

【Oracle 集群】Oracle 11G RAC教程之集群安装(七)

Oracle 11G RAC集群安装(七) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体系的总结,一则进行回顾复习,另则便于查询使用.本图文文档亦源于此.阅读Oracle RAC安装与使用教程前,笔者先对这篇文章整体构思和形成进行梳理.由于阅读者知识储备层次不同,我将从Oracle RAC安装前的准备与规划开始进行整体介绍安装部署Oracle RAC.始于唐博士指导,对数据库集群进行配

『GreenPlum系列』GreenPlum 4节点集群安装(图文教程)

目标架构如上图 一.硬件评估 cpu主频,核数推荐CPU核数与磁盘数的比例在12:12以上Instance上执行时只能利用一个CPU核资源进行计算,推荐高主频 内存容量 网络带宽重分布操作 Raid性能条带宽度设置回写特性 二.操作系统 1.在SUSE或者RedHat上使用xfs(操作系统使用ext3)    在Solaris上使用zfs(操作系统使用ufs) 2.系统包 出现如下界面,按照下面的说明进行勾选,之后一直[Next]到开始安装. -->[Desktop Environments]全

Spark教程-构建Spark集群-安装Ubuntu系统(2)

3.点击“Finish”完成虚拟系统的创建,如下图所示: 点击我们创建的Ubuntu,如下所示 点击“CD/DVD(IDE)”进入如下界面 选择我们的Ubuntu的ISO的具体存放路径,选择好后如下图所示: 点击“OK”完成设置: 点击“Memory”,进入如下界面: 此时把我们虚拟的内存设置为2G,如下所示: 点击“OK”完成设置. Spark教程-构建Spark集群-安装Ubuntu系统(2)

Spark教程-构建Spark集群-安装Ubuntu系统(1)

Unbuntu系统是我们开发Hadoop时最常用的操作系统,下面带领大家一步步完成Vmware虚拟机下Unbuntu系统的安装 创建Vmware中的虚拟系统: 我们选择的是“Typical”的方式,点击“Next”进入下一步: 选择稍后安装操作系统,点击“Next”进入下一步: 选择安装Linux系统的Ubuntu版本,点击“Next”进入下一步: 家林这里选择了自定义系统的存放路径为“E:\VMware\Virtual Machines\Master” 如下图所示: 点击“Next”进入下一步

菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章

菜鸟玩云计算之十八:Hadoop 2.5.0 HA 集群安装第1章 cheungmine, 2014-10-25 0 引言 在生产环境上安装Hadoop高可用集群一直是一个须要极度耐心和体力的仔细工作. 虽然有非常多文档教会大家怎么一步一步去完毕这样的工作,可是百密也有一疏. 现成的工具不是没有,可是对于我这个喜欢了解细节的人来说,用别人的东西,写的好还能够,写的不好,出了问题,查找错误难之又难.手工安装Hadoop集群须要对Linux有一定的使用经验.对于全然没有接触Linux的人来说.肯定是

“挖掘机”升级路 一篇(03)--HBase集群安装中的收获

粗略算算,从上周五到这周二,折腾Hadoop已经三天了.这三天我是过得诚惶诚恐,作为一个学徒,老大虽然没有说啥,但是我恨不得立马完成这些基本的部署工作,感觉拖了好久好久.简单的总结一下,第一天折腾Hadoop单机和伪分布式的安装,第二天在折腾Hive的安装,以失败告终,第三天折腾HBase的集群安装,在主节点上安装成功. 也就来具体的谈谈今天的收获,今天的参考资料主要是这么两篇1.分布式实时日志系统(四) 环境搭建之centos 6.4下hbase 1.0.1 分布式集群搭建(我FQ看的,不知道

Spark2.1集群安装(standalone模式)

机器部署 准备三台Linux服务器,安装好JDK1.7 下载Spark安装包 上传spark-2.1.0-bin-hadoop2.6.tgz安装包到Linux(intsmaze-131)上 解压安装包到指定位置tar -zxvf spark-2.1.0-bin-hadoop2.6.tgz -C /home/hadoop/app/spark2.0/ 原文和作者一起讨论:http://www.cnblogs.com/intsmaze/p/6569036.html 微信:intsmaze 配置Spar

CentOS7+Hadoop2.7.2(HA高可用+Federation联邦)+Hive1.2.1+Spark2.1.0 完全分布式集群安装

1       VM网络配置... 3 2       CentOS配置... 5 2.1             下载地址... 5 2.2             激活网卡... 5 2.3             SecureCRT. 5 2.4             修改主机名... 6 2.5             yum代理上网... 7 2.6             安装ifconfig. 8 2.7             wget安装与代理... 8 2.8