设为首页 收藏本站
查看: 580|回复: 0

[经验分享] nginx-tomcat负载均衡redis-session共享,静态资源分离

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-5-25 08:57:14 | 显示全部楼层 |阅读模式
                      基本环境:

redis-2.8

apache-tomcat-6.0.41

nginx1.6.2

1,redis配置1,配置redis访问密码

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

如:

requirepass root

2,启动redis

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

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

2,tomcat准备工作1,准备tomcat应用服务器

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

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

3,修改tomcat的context.xml配置

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

  • <!-- 利用redis 进行session 共享 -->  
  • <Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />  
  • <Manager className="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属性。

Center.jpg


4,复制tomcat修改各个tomcat的端口

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

tomcat1:Server port="8005",Connector port="8080",ajp Connector port="8009"

tomcat2:Server port="8006",Connector port="8081",ajp Connector port="8010"

tomcat3:Server port="8007",Connector port="8082",ajp Connector port="8011"

获取【下载地址】  springmvc+mybatis+spring 整合 bootstrap html5 mysql oracle SSM

3,nginx配置1,注释默认访问

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

listen 80;

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

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

  • upstream pool{  
  •     server 127.0.0.1:8080;  
  •     server 127.0.0.1:8081;  
  •     server 127.0.0.1:8082;  
  • }  

3,配置访问域名

继续在test.conf中添加:

  • server {  
  •     listen 80 default_server;  
  •     server_name www.test.cn;  
  •     gzip on;  
  •     gzip_min_length  1k;  
  •     gzip_buffers     4 16k;  
  •     gzip_http_version 1.0;  
  •     gzip_comp_level 2;  
  •     gzip_types  text/plain application/x-javascript text/css application/xml;  
  •     gzip_vary on;  
  •     location / {  
  •       proxy_set_header Host $host;  
  •       proxy_set_header X-Forwarded-For $remote_addr;  
  •       proxy_connect_timeout   3;  
  •       proxy_send_timeout      30;  
  •       proxy_read_timeout      30;  
  •       proxy_pass http://pool;  
  •   }  
  •   error_page 500 502 503 504 /50x.html;  
  •   location = /50x.html{  
  •       root /home/workspace/server/apache-tomcat-6.0.41-8080/webapps/test;  
  •   }  
  •   if ($host != 'www.test.cn' ){  
  •     rewrite ^/(.*)$ http://www.test.cn/$1 permanent;  
  •   }  

  • }  

4,配置静态资源访问
  • server {  
  •      listen 80;  
  •      server_name static.test.cn;  
  •      location /static {  
  •            root /home/workspace/server/apache-tomcat-6.0.41-8080/webapps/test;  
  •      }  
  •      location /media {  
  •            root /home/workspace/file;  
  •      }  
  • }  

5,修改请求体的大小

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

client_max_body_size 100m;

4,启动nginx和tomcat,测试

测试负载均衡:

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

测试session共享:

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



                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-221457-1-1.html 上篇帖子: Nginx日志分割脚本 下篇帖子: 简单的nginx一键部署脚本 资源
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表