失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > nginx-tomcat负载均衡redis-session共享 静态资源分离

nginx-tomcat负载均衡redis-session共享 静态资源分离

时间:2019-05-20 15:15:22

相关推荐

nginx-tomcat负载均衡redis-session共享 静态资源分离

基本环境:

redis-2.8

apache-tomcat-6.0.41

nginx1.6.2

1.redis配置

1.1配置redis访问密码

到redis的目录下找的redis.conf,解开requirepass注释(此属性用于设置密码)。

如:

requirepassroot

1.2启动redis

到redis的目录以后台运行的方式启动redis

redis-server/root/redis-2.8.9/redis.conf&

2,tomcat准备工作

2.1准备tomcat应用服务器

部署一个应用到tomcat,将里面的需要静态处理的文件,例如img,单独存放在一个文件夹下,如static下面。将用户产生的媒体文件存放到一个共用的目录下,如/data/media下。后面用nginx配置处理。

2.2添加tomcat和redis做session共享的jar包

在tomcat自己的lib下添加session共享所需的jar包,需要注意tomcat的版本对应。

commons-pool-1.6.jar

jedis-2.1.0.jar

tomcat-redis-session-manager-1.2-tomcat-6.jar

2.3修改tomcat的context.xml配置

到tomcat的conf目录下找到context.xml配置文件,在标签<Context>下添加:

<!--利用redis进行session共享--><ValveclassName="com.radiadesign.catalina.session.RedisSessionHandlerValve"/><ManagerclassName="com.radiadesign.catalina.session.RedisSessionManager"host="127.0.0.1"port="6379"password="root"database="0"maxInactiveInterval="3600"/>

提供的配置中默认没有password属性,我们可以查看tomcat-redis-session-manager-1.2-tomcat-6.jar的源码,可以在RedisSessionManager.class中找的password属性。获取【下载地址】springmvc整合mybatis框架源码 bootstrap

2.4复制tomcat修改各个tomcat的端口

配置完了tomcat和redis共享的配置之后,我们就可以将此tomcat复制多份,然后修改tomcat的端口,如:

tomcat1:Serverport="8005",Connectorport="8080",ajpConnectorport="8009"

tomcat2:Serverport="8006",Connectorport="8081",ajpConnectorport="8010"

tomcat3:Serverport="8007",Connectorport="8082",ajpConnectorport="8011"

3 nginx配置

3.1注释默认访问

在ngix的nginx/conf.d/下有个default.conf,将里面的listen80default_server改为:

listen80;

3.2在添加需要负载的应用服务器

在ngix的nginx/conf.d/的创建一个conf,如test.conf。在里面添加upstreampool配置段,将各个需要负载服务器的地址填到下面:

upstreampool{server127.0.0.1:8080;server127.0.0.1:8081;server127.0.0.1:8082;}

3.3配置访问域名

继续在test.conf中添加:

server{listen80default_server;;gzipon;gzip_min_length1k;gzip_buffers416k;gzip_http_version1.0;gzip_comp_level2;gzip_typestext/plainapplication/x-javascripttext/cssapplication/xml;gzip_varyon;location/{proxy_set_headerHost$host;proxy_set_headerX-Forwarded-For$remote_addr;proxy_connect_timeout3;proxy_send_timeout30;proxy_read_timeout30;proxy_passhttp://pool;}error_page500502503504/50x.html;location=/50x.html{root/home/workspace/server/apache-tomcat-6.0.41-8080/webapps/test;}if($host!=''){rewrite^/(.*)$/$1permanent;}}

3.4配置静态资源访问

server{listen80;;location/static{root/home/workspace/server/apache-tomcat-6.0.41-8080/webapps/test;}location/media{root/home/workspace/file;}}

3.5修改请求体的大小

在http{}里增加client_max_body_size属性,此属性会影响很多的地方,例如上传。

client_max_body_size100m;

4 启动nginx和tomcat,测试

测试负载均衡:

启动nginx和所有tomcat,然后到网页登录,然后启动另一个tomcat,关闭上一个。查看是否还能访问。开启所有tomcat用工具发起大量请求,查看请求是否被分发到各个tomcat。

测试session共享:

启动nginx和一个tomcat,然后到网页登录,然后启动另一个tomcat,关闭上一个。查看是否还在登录状态。

如果觉得《nginx-tomcat负载均衡redis-session共享 静态资源分离》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。