龙空技术网

Nginx+Redis+Tomcat实现session共享集群

云渺书斋 226

前言:

如今小伙伴们对“nginx多个root存在时”大约比较重视,我们都想要了解一些“nginx多个root存在时”的相关资讯。那么小编在网上收集了一些有关“nginx多个root存在时””的相关资讯,希望咱们能喜欢,姐妹们一起来学习一下吧!

1. 概述

本文档基于Nginx+Redis+Tomcat实现session共享和负载均衡。

负载均衡(Load Balance),是分布式系统中一个非常重要的概念。当访问的服务具有多个实例节点时,需要根据某种"均衡"的策略决定请求发往哪个节点,这个过程就是所谓的负载均衡。多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。

Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。反向代理对象为服务端做代理,使客户端不需要感知服务端的存在,只需要访问代理服务器便可获得想要的结果。实现限流、负载均衡、动静分离等。

Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串、链表、集合和有序集合。支持在服务器端计算集合的并、交和补集等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器。

2. 原理

将session数据集中存储,然后不同Web服务器从同样的地方获取Session。

3. Redis安装、部署3.1Redis概述

Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串、链表、集合和有序集合。支持在服务器端计算集合的并、交和补集等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务器。

3.2Redis下载地址

(如果已有安装包,将安装包放到相关目录下)

Redis安装目录/usr/local/

[root@bogon ~]# cd /usr/local/

[root@bogon local]# wget

3.3解压缩

[root@bogon local]# tar -zxvf redis-5.0.5.tar.gz

3.4编译、安装

[root@bogon local]# cd redis-5.0.5

[root@bogon redis-5.0.5]# make

[root@bogon redis-5.0.5]# make install

3.5修改Redis目录下redis.conf配置文件

[root@bogon redis-5.0.5]# vi redis.conf

Insert

#69行,修改bind,bind 127.0.0.1表示只能本机使用

bind 0.0.0.0

#92行,修改默认端口,查找 port 6379 修改为相应端口即可

port 6379

#113行,当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能。

timeout 300

#136行,redis将以守护进程的方式运行,默认为no会暂用你的终端,yes支持后台启动方式

daemonize yes

#507行,修改默认密码,查找 requirepass foobared将foobared修改为你的密码

requirepass 1234qwer

3.6启动Redis

/usr/local/bin/redis-server /usr/local/redis-5.0.5/redis.conf

3.7停止Redis

进程号杀掉关闭redis:kill -9 pid

命令方式关闭redis

[root@bogon ~]# cd /usr/local/redis-5.0.5/src

[root@bogon src]# redis-cli -h 127.0.0.1 -p 6379

127.0.0.1:6379> info

NOAUTH Authentication required

127.0.0.1:6379> auth 1234qwer

OK

127.0.0.1:6379> shutdown [NOSAVE|SAVE]

not connected> exit

3.8将Redis加入开机启动

vi /etc/rc.local

#在里面添加内容:

/usr/local/bin/redis-server /usr/local/redis-5.0.5/redis.conf

3.9检查是否启动成功

[root@bogon ~]# ps -ef|grep redis

3.10卸载Redis

rm -rf /usr/local/redis-5.0.5//删除redis解压文件夹

rm -rf /usr/bin/redis-* //删除所有redis相关命令脚本

rm -rf /usr/local/redis-5.0.5.tar.gz //删除redis安装包

4. Nginx安装、部署4.1Nginx概述

负载均衡(Load Balance),是分布式系统中一个非常重要的概念。当访问的服务具有多个实例节点时,需要根据某种"均衡"的策略决定请求发往哪个节点,这个过程就是所谓的负载均衡。多在高并发情况下需要使用。其原理就是将数据流量分摊到多个服务器执行,减轻每台服务器的压力,多台服务器(集群)共同完成工作任务,从而提高了数据的吞吐量。Nginx是一个轻量级、高性能、稳定性高、并发性好的HTTP和反向代理服务器。

反向代理:代理对象为服务端做代理,使客户端不需要感知服务端的存在,只需要访问代理服务器便可获得想要的结果。实现限流、负载均衡、动静分离等。

4.2所需依赖包

yum install gcc-c++

yum install pcre pcre-devel

yum install zlib zlib-devel

yum install openssl openssl--devel

4.3Nginx下载地址

(如果已有安装包,将安装包放到相关目录下)

Nginx安装目录/usr/local/

[root@bogon ~]# cd /usr/local/

[root@bogon local]# wget

4.4解压缩

[root@bogon local]# tar -zxvf nginx-1.9.9.tar.gz

4.5编译、安装

[root@bogon local]# cd nginx-1.9.9

#默认安装在/usr/local/nginx

# --prefix=<path>:Nginx安装的根路径

[root@bogon nginx-1.9.9]#./configure --prefix=/usr/local/nginx

[root@bogon nginx-1.9.9]# make

[root@bogon nginx-1.9.9]# make install

4.6修改Nginx目录下nginx.conf配置文件

[root@bogon nginx-1.9.9]# cd conf

[root@bogon conf]# vi nginx.conf

基于ip_hash实现session:

upstream server {

ip_hash;

server 192.168.200.129:80; #第一台负载的ip及端口

server 192.168.200.131:80; #第二台负载的ip及端口

}

server {

listen 80;

server_name localhost;

location / {

proxy_pass ;

proxy_redirect default;

}

}

4.7Nginx命令

#启动

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

#停止

关闭进程方式:

kill -9 pid

命令行方式:

/usr/local/nginx/sbin/nginx -s stop

#重新载入配置文件

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

4.8将Nginx加入开机启动

vi /etc/rc.local

#在里面添加内容:

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

4.9检查是否启动成功

[root@bogon conf]# ps -ef|grep nginx

root 13651 1 0 12:07 ? 00:00:00 nginx: master process /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf

nobody 13652 13651 0 12:07 ? 00:00:00 nginx: worker process

4.10卸载Nginx

rm -rf /usr/local/nginx-1.9.9 //删除nginx解压文件夹

rm -rf /usr/local/nginx-1.9.9.tar.gz //删除nginx安装包

5. Tomcat配置文件修改

Tomcat版本:8.0.50.0

JVM Version:1.7.0_80-b15

修改tomcat/conf/context.xml配置文件增加Valve,Manager配置。

在<Context>标签下 新增以下内容

<Valve className="com.naritech.nicole.gump.RedisSessionHandlerValve" />

<Manager className="com.naritech.nicole.gump.RedisSessionManager"

host="127.0.0.1"//Redis所在服务器地址

port="6379"

password="1234qwer"

database="0"

maxInactiveInterval="60"

/>

6. Tomcat下引入相关jar包

commons-pool2-2.3.jar

jedis-2.7.3.jar

tomcat-redis-session-manager-master-2.0.0.jar

将以上3个jar包拷贝到tomcat的相关目录,如下:

/usr/local/tomcat/lib

7. 启动顺序

先启动redis,然后启动tomcat,最后启动nginx。

(云渺书斋)

如有转载请标明出处,本文地址

标签: #nginx多个root存在时