文档章节

Nginx+Tomcat+Redis实现负载均衡、资源分离、session共享

Q317075064
 Q317075064
发布于 2016/09/29 16:10
字数 511
阅读 163
收藏 7

Nginx+Tomcat+Redis实现负载均衡、资源分离、session共享

CentOS安装Nginx

http://centoscn.com/CentosServer/www/2013/0910/1593.html

CentOS安装Tomcat

http://blog.csdn.net/zhuying_linux/article/details/6583096

CentOS安装Redis

http://www.cnblogs.com/zhuhongbao/archive/2013/06/04/3117997.html

多个Tomcat负载均衡实例:可在服务器上复制出多个Tomcat分别修改Tomcat的

http访问端口(默认为8080端口)

Shutdown端口(默认为8005端口)

JVM启动端口(默认为8009端口)

1、Nginx实现多Tomcat负载均衡

Tomcat服务

192.168.1.177:8001

192.168.1.177:8002

192.168.1.177:8003

Nginx配置

upstream mytomcats { 

server 192.168.1.177:8001; 

server 192.168.1.177:8002; 

server 192.168.1.177:8003; 

}

server { 

listen 80; 

server_name www.iu14.com;

location ~* \.(jpg|gif|png|swf|flv|wma|wmv|asf|mp3|mmf|zip|rar)$ { 

        root /web/www/html/; 

location / { 

        proxy_pass http://mytomcats; 

        proxy_redirect off; 

        proxy_set_header Host $host; 

        proxy_set_header X-Real-IP $remote_addr; 

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

        client_max_body_size 10m; 

        client_body_buffer_size 128k; 

        proxy_connect_timeout 90; 

        proxy_send_timeout 90; 

        proxy_read_timeout 90; 

        proxy_buffer_size 4k; 

        proxy_buffers 4 32k; 

        proxy_busy_buffers_size 64k; 

        proxy_temp_file_write_size 64k;

}

}

upstream指定负载均衡组,指定其Tomcat成员

location ~* \.(jpg|gif|……实现了静态资源分离。ps:在location指令使用正则表达式后再用alias指令,Nginx是不支持的。

2、Nginx实现静态资源分离

Tomcat服务

192.168.1.177:8000

Nginx配置

server { 

listen 80; 

server_name www.iu14.com; 

root /web/www/html;

location /img/ { 

alias /web/www/html/img/; 

}

location ~ (\.jsp)|(\.do)$ { 

proxy_pass http://192.168.1.177:8000; 

proxy_redirect off; 

        proxy_set_header Host $host; 

        proxy_set_header X-Real-IP $remote_addr; 

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

        client_max_body_size 10m; 

        client_body_buffer_size 128k; 

        proxy_connect_timeout 90; 

proxy_send_timeout 90; 

proxy_read_timeout 90; 

        proxy_buffer_size 4k; 

        proxy_buffers 4 32k; 

        proxy_busy_buffers_size 64k; 

        proxy_temp_file_write_size 64k; 

}  

}

第一个location指令将/web/www/html/img/目录下的静态文件交给Nginx来完成。最后一个location指令将所有以.jsp、.do结尾的文件都交给Tomcat服务器的8080端口来处理。

3、Nginx+Tomcat+Redis实现session共享

Redis服务

192.168.1.178:6379

Tomcat服务

192.168.1.177:8001

192.168.1.177:8002

192.168.1.177:8003

Nginx服务

192.168.1.179

配置Tomcat让其session保存到redis上,在context.xml配置(Value标签一定要在Manager标签前面):

配置Nginx

upstream mytomcats { 

server 192.168.1.177:8001; 

server 192.168.1.177:8002; 

server 192.168.1.177:8003; 

}

log_format www_iu14_com '$remote_addr - $remote_user [$time_local] $request ' '"$status" $body_bytes_sent "$http_referer"'  '"$http_user_agent" "$http_x_forwarded_for"'; 

server {

listen  80; 

server_name www.iu14.com;  

    location / { 

        proxy_pass http:// mytomcats; 

        proxy_set_header Host $host; 

        proxy_set_header X-Real-IP $remote_addr; 

        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 

access_log /usr/tmp/logs/redis.iu14.log www_iu14_com;  

依次启动Redis、Tomcat、Nginx,访问Nginx

 

© 著作权归作者所有

上一篇: web项目性能优化
下一篇: Spring 事务
Q317075064
粉丝 11
博文 41
码字总数 54507
作品 0
成都
高级程序员
私信 提问
nginx+tomcat+redis负载均衡,实现session共享

实验环境: 基础理论 session 统一方案: 1、单机的session会话保持机制如nginx的ip-hash,如果单个机器下线,那么session将会全部丢失 2、session共享,如tomcat集群,多个应用服务器共享同...

812374156
2018/04/23
0
0
集群tomcat+session共享

1、要集群tomcat主要是解决SESSION共享的问题,因此我利用memcached来保存session,多台TOMCAT服务器即可共享SESSION了。你可以自己写tomcat的扩展来保存SESSION到memcached。 多个tomcat要一...

天下杰论
2015/03/09
189
1
从运维角度看大中型网站架构的演变之路

网上有很多文章类似于我今天要分享的内容,有架构师写的,有运维写的,还有开发些的,偏重点都不同,今天我将从运维角度全面讲解。 一个成熟的网站架构并不是一开始设计就具备高可用、高伸缩...

李振良
2017/08/09
0
0
redis缓存服务器(nginx+tomcat+redis+mysql实现session会话共享)

一、redis介绍 redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型...

何小帅
2018/06/26
0
0
从运维角度看中大型网站架构的演变之路

前言 网上有很多文章类似于我今天要分享的课程,有架构师写的,有运维写的,还有开发些的,偏重点都不同,今天我以咱们运维角度全面讲解。 一个成熟的网站架构并不是一开始设计就具备高可用、...

李振良OK
2017/07/28
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 他只能用这个办法劝你注意身体了

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @-冰冰棒- :#今日歌曲推荐# Kodaline《High Hopes》 《High Hopes》- Kodaline 手机党少年们想听歌,请使劲儿戳(这里) @xiaoshiyue :仙女...

小小编辑
29分钟前
804
15
Spring Boot Actuator 整合 Prometheus

简介 Spring Boot 自带监控功能 Actuator,可以帮助实现对程序内部运行情况监控,比如监控状况、Bean加载情况、环境变量、日志信息、线程信息等。这一节结合 Prometheus 、Grafana 来更加直观...

程序员果果
38分钟前
10
0
Linux文件查找命令详解

对于文件查找,我们最好用的还是属于find命令了,在说find命令之前,先把另外几个查找命令介绍一下。 目录 0x01 查询命令介绍 0x02 find命令介绍 0x01 查询命令介绍 在介绍之前,首先先了解一...

无心的梦呓
39分钟前
7
0
快速掌握的测试用例优先级划分方法

怎么样的设计才能算测试用例 引自:IEEE Standard 610 (1990): A set of test inputs, execution conditions, and expected results developed for a particular objective, such as to exe......

测者陈磊
42分钟前
6
0
[mycat]Attribute value "roadNodeId,version" of type NMTOKEN must be a name token

不能逗号配两个字段的主键 primaryKey="roadNodeId,version" Caused by: io.mycat.config.util.ConfigException: org.xml.sax.SAXParseException; lineNumber: 7; columnNumber: 105; Attrib......

Danni3
48分钟前
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部