本文简单介绍如何使用Nginx来实现Tomcat的负载均衡,使用Nginx来作为静态资源服务器,使用Redis来实现session的共享。搭建环境如下:
操作系统: RedHat Enterprise Linux 7 64位
jdk: jdk-8u92-linux-x64
nginx: nginx-1.10.3
tomcat:apache-tomcat-8.5.31
redis: redis-3.2.9
部署图如下:
Redis的安装配置(单节点)
1、将安装包上传到/opt/study/redis目录下
2、解压安装包
cd /opt/study/redis
tar -zxvf redis-3.2.9.tar.gz
3、编译安装
cd /opt/study/redis/redis-3.2.9
make
make PREFIX=/opt/software/redis install
4、编辑配置文件
将安装包的redis.conf配置文件复制到 /opt/software/redis/bin 目录下,并修改以下关键配置信息:
#绑定本机IP地址
bind 192.168.134.130
#监听端口
port 7001
#是否作为守护进程运行
daemonize yes
pidfile /opt/software/redis/bin/redis.pid
logfile /opt/software/redis/bin/redis.log
5、启动Redis
cd /opt/software/redis/bin
./redis-server ./redis.conf
Tomcat的安装部署
1、将安装包apache-tomcat-8.5.31.tar.gz上传到/opt/software/tomcat目录下
2、解压安装包
cd /opt/software/tomcat
tar -zxvf apache-tomcat-8.5.31.tar.gz
3、将测试用的web应用部署到tomcat的webapps目录下。测试程序自行开发
4、启动tomcat
cd /opt/software/tomcat/apache-tomcat-8.5.31/bin
./startup.sh
springboot项目下使用spring-session实现session共享
1、在pom.xml文件中添加依赖包
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.session</groupId> <artifactId>spring-session-data-redis</artifactId> </dependency>
2、创建配置类RedisSessionConfig.java
@Configuration @EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800) public class RedisSessionConfig { }
3、在application.properties属性文件添加配置项
spring.redis.host=192.168.134.130 spring.redis.port=7001 spring.redis.timeout=30 spring.session.store-type=Redis spring.session.redis.flushMode=IMMEDIATE
使用tomcat-cluster-redis-session-manager插件实现Tomcat的session共享
1、从 https://github.com/ran-jit/tomcat-cluster-redis-session-manager/wiki 下载插件的压缩包
2、将压缩包中的以下jar文件上传到tomcat的lib目录下,不同版本的插件对应不同的jar文件版本,本范例使用tomcat-cluster-redis-session-manager-2.0.zip版本的压缩包。
commons-logging-1.2.jar
commons-pool2-2.4.2.jar
jedis-2.9.0.jar
tomcat-cluster-redis-session-manager-2.0.jar
3、将redis-data-cache.properties复制到TOMCAT的conf目录下,并修改里面的参数值
redis.hosts=192.168.134.130:7001
4、编辑TOMCAT的conf/context.xml文件,在最后的</Context>前加入以下配置:
<Valve className="tomcat.request.session.redis.SessionHandlerValve" /> <Manager className="tomcat.request.session.redis.SessionManager" />
Nginx的安装配置
1、将安装包上传到/opt/study目录下
2、解压安装包
cd /opt/study
tar zxvf nginx-1.10.3.tar.gz
3、编译安装
cd /opt/study/nginx-1.10.3
./configure --prefix=/opt/software/nginx
make
make install
4、编辑/opt/software/nginx/conf/nginx.conf配置文件
#user nobody; worker_processes 1; error_log logs/error.log info; pid logs/nginx.pid; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; access_log logs/access.log; sendfile on; keepalive_timeout 65; #gzip on; upstream tomcat_server{ server 192.168.134.128:8080 weight=1; server 192.168.134.129:8080 weight=1; } server { listen 80; server_name 192.168.134.127; #处理静态资源 location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { root /opt/software/nginx/html; expires 30d; } #访问tomcat下的demo应用 location ~* /demo/ { proxy_pass http://tomcat_server; proxy_redirect default; } location / { root html; index index.html index.htm; } #error_page 404 /404.html; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
5、启动nginx
cd /opt/software/nginx/sbin
./nginx
Nginx实现静态资源服务器
可以将静态网页、图片、css样式文件、js脚本文件等静态资源文件部署到Nginx服务器中,当客户端请求这些静态资源时,Nginx将直接返回这些静态资源,无需经过后台的应用服务器。
假设demo/index.jsp文件的内容如下:
<%@ page session="true" pageEncoding="UTF-8" contentType="text/html; charset=UTF-8" %> <!DOCTYPE html> <html lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <link rel="stylesheet" href="static/css/common.css" /> <title>demo page</title> </head> <body> <img src="static/images/personal.png"> <script type="text/javascript" src="static/js/common.js"></script> </body> </html>
则静态资源文件在Nginx下的目录结构如下:
/opt/software/nginx/html/demo/static css common.css images personal.png js common.js
Nginx的配置文件需要添加以下配置信息:
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ { root /opt/software/nginx/html; expires 30d; }
相关推荐
在构建高性能、高可用的Web服务时,"nginx+redis负载均衡、session共享"是一个常见的解决方案。这个方案结合了Nginx的反向代理和负载均衡能力,以及Redis的内存数据存储和分布式特性,用于处理高并发场景下的HTTP...
本教程将详细讲解如何通过`Nginx`实现`Tomcat`集群的负载均衡,并实现`session`共享。 首先,我们要理解负载均衡的基本概念。负载均衡是通过将工作负载分散到多个计算资源,以优化资源使用、最大化吞吐量、最小化...
nginx+tomcat实现负载均衡,共享session的两种方式: 1.使用Redis共享session 2.使用tomcat的组播功能。
同时,可以使用共享的session存储(如Redis)来进一步提高效率和可靠性。 总结来说,通过Nginx实现基于Tomcat的负载均衡和集群配置,可以有效提高Web服务的可用性、响应速度和扩展性。这不仅降低了单点故障的风险,...
这种模式结合了Nginx的反向代理和负载均衡能力,Tomcat作为Java应用服务器处理业务逻辑,而Redis则用于高效地存储和共享用户会话(session)数据。下面我们将详细探讨这些技术组件及其相互作用。 **Nginx** Nginx...
这个小例子"nginx+tomcat+redis完成session共享"旨在演示如何通过这三种技术实现跨服务器的用户会话共享,以提升用户体验并简化系统管理。以下是这些技术及其在会话共享中的作用: 1. **Nginx**:Nginx是一款高性能...
本篇将详细讲解如何在Nginx+Tomcat+Redis环境中实现负载均衡,并讨论session管理的关键知识点。 首先,Nginx是一个强大的HTTP和反向代理服务器,它能够通过分发请求到多个后端服务器来实现负载均衡。Nginx支持多种...
通过上述步骤,我们成功地在`CentOS7`上配置了`Nginx+Tomcat`的负载均衡,并使用`Redis`实现了跨服务器的Session共享。这样的架构可以有效地分发用户请求,提高系统整体的可用性和响应速度,同时保证了用户会话的...
包含的jar包如下: commons-pool2-2.0.jar jedis-2.5.2.jar tomcat-juli-adapters.jar tomcat-juli.jar tomcat-redis-session-manager1.2.jar
### Nginx、Tomcat与Redis实现Session共享详解 #### 一、背景介绍 随着互联网技术的发展,越来越多的应用系统需要支持高并发访问。在这种场景下,单台服务器往往难以满足需求,因此通常会采用集群的方式来分担负载...
标题 "Redis实现Nginx+Tomcat在windows平台上配置负载均衡的session共享(2)" 指向的是一个关于如何在Windows环境下使用Redis来实现Nginx与Tomcat之间的session共享,从而达到负载均衡配置的技术实践。在这个过程中...
标题 "Tomcat7+Redis+Session 负载之后session 共享 tomcat jar包" 涉及的是在使用Nginx做负载均衡时,如何通过集成Redis来实现Tomcat7服务器之间的Session共享,从而确保用户在不同服务器之间切换时仍然能够保持...
确保这些jar包被正确地引入到项目中,并遵循相应的配置步骤,即可实现`nginx`、`Tomcat`和`Redis`的负载均衡和session共享。 总之,结合`nginx`的负载均衡能力、`Tomcat`的应用处理能力以及`Redis`的高效数据存储,...
这里我们关注的是如何在Windows环境下,利用Nginx作为反向代理服务器,与Tomcat应用服务器集群配合,实现负载均衡,并且确保Session数据在多个Tomcat实例之间共享。这个场景对于大型网站或高并发的应用尤其实用,...
本文将详细介绍如何在Windows环境下,利用Nginx作为反向代理服务器,与Tomcat集群配合实现负载均衡,并进行session复制,确保用户会话在不同服务器之间的一致性。 首先,Nginx是一款轻量级、高性能的HTTP和反向代理...
Nginx+Tomcat+Redis实现负载均衡、资源分离、session共享 Nginx、Tomcat和Redis是三大热门的开源软件,分别...通过使用Nginx、Tomcat和Redis,我们可以实现负载均衡、资源分离和session共享,提高网站的性能和可用性。
这里我们将深入探讨如何使用Tomcat、Nginx和Redis实现这两大功能,并关注涉及的jar包。 首先,Tomcat是Apache软件基金会的一个开源Java Servlet容器,广泛用于部署Java Web应用程序。在多台Tomcat服务器上实现负载...
目前只支持tomcat8.5,其它版本的tomcat还没测试,自己配置过很多nginx+tomcat集群+redis实现session共享的系统,经过仔细总结得出这些,可以说是知识的结晶,欢迎大家来下载,不好的地方可以多提,有问题看到的话会...
Linux 下 Tomcat+nginx+redis 负载均衡配置是指在 Linux 操作系统下,使用 Tomcat、nginx 和 Redis 实现负载均衡和资源共享的配置方法。该配置主要通过 nginx 实现负载均衡,Tomcat 提供 Web 服务,Redis 提供 ...
超详细Nginx+Tomcat+Redis搭建高性能负载均衡集群Session共享搭建说明,按文档步骤可轻松搭建并实现session共享