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

基本环境:

redis-2.8

apache-tomcat-6.0.41

nginx1.6.2

1。redis配置

1,配置redis訪问password

到redis的文件夹下找的redis.conf,解开requirepass凝视(此属性用于设置password)。

如:

requirepass root

2,启动redis

到redis的文件夹以后台执行的方式启动redis

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

2,tomcat准备工作

1,准备tomcat应用server

部署一个应用到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>下加入:

  1. <!-- 利用redis 进行session 共享 -->
  2. <Valve className="com.radiadesign.catalina.session.RedisSessionHandlerValve" />
  3. <Manager className="com.radiadesign.catalina.session.RedisSessionManager"
  4. host="127.0.0.1"
  5. port="6379"
  6. password="root"
  7. database="0"
  8. maxInactiveInterval="3600"/>

提供的配置中默认没有password属性。我们能够查看tomcat-redis-session-manager-1.2-tomcat-6.jar的源代码,能够在RedisSessionManager.class中找的password属性。

4。复制tomcat改动各个tomcat的port

配置完了tomcat和redis共享的配置之后,我们就能够将此tomcat复制多份,然后改动tomcat的port。如:

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"

3。nginx配置

1,凝视默认訪问

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

listen 80;

2,在加入须要负载的应用server

在ngix的nginx/conf.d/的创建一个conf,如test.conf。在里面加入upstream pool配置段。将各个须要负载server的地址填到以下:

  1. upstream pool{
  2. server 127.0.0.1:8080;
  3. server 127.0.0.1:8081;
  4. server 127.0.0.1:8082;
  5. }

3,配置訪问域名

继续在test.conf中加入:

  1. server {
  2. listen 80 default_server;
  3. server_name www.test.cn;
  4. gzip on;
  5. gzip_min_length  1k;
  6. gzip_buffers     4 16k;
  7. gzip_http_version 1.0;
  8. gzip_comp_level 2;
  9. gzip_types  text/plain application/x-javascript text/css application/xml;
  10. gzip_vary on;
  11. location / {
  12. proxy_set_header Host $host;
  13. proxy_set_header X-Forwarded-For $remote_addr;
  14. proxy_connect_timeout   3;
  15. proxy_send_timeout      30;
  16. proxy_read_timeout      30;
  17. proxy_pass http://pool;
  18. }
  19. error_page 500 502 503 504 /50x.html;
  20. location = /50x.html{
  21. root /home/workspace/server/apache-tomcat-6.0.41-8080/webapps/test;
  22. }
  23. if ($host != 'www.test.cn' ){
  24. rewrite ^/(.*)$ http://www.test.cn/$1 permanent;
  25. }
  26. }

4,配置静态资源訪问

  1. server {
  2. listen 80;
  3. server_name static.test.cn;
  4. location /static {
  5. root /home/workspace/server/apache-tomcat-6.0.41-8080/webapps/test;
  6. }
  7. location /media {
  8. root /home/workspace/file;
  9. }
  10. }

5,改动请求体的大小

在http {}里添加 client_max_body_size属性。此属性会影响非常多的地方,比如上传。

client_max_body_size 100m;

4。启动nginx和tomcat,測试

測试负载均衡:

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

測试session共享:

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

最新文章

  1. struts---JSP界面验证码生成与验证
  2. JAVA文件下载功能问题解决日志
  3. 枚举/遍历 一个数组NSArray/NSDictionary
  4. 【OpenGL】交互式三次 Bezier 曲线
  5. POJ2947Widget Factory(高斯消元解同模方程)
  6. JSON3-翻译(不当之处,请指正)
  7. LSI MegaCli 命令使用2
  8. Linux学习之开机启动
  9. Angularjs 动态添加指令并绑定事件
  10. Intent及IntentFilter具体解释
  11. poj3580 splay树 REVOVLE循环
  12. 安卓热修复之AndFIX
  13. 9.2.2、Libgdx的输入处理之事件处理
  14. python中装饰器的原理
  15. Android单元测试学习(一)
  16. 使用filezilla server搭建FTP服务器
  17. 理解linux cpu load - 什么时候应该担心了
  18. 《垃圾回收的算法与实现》——GC标记-清除算法
  19. 在Windows2003下如何查看IIS站点中对应的PID值
  20. c# 设置自动隐藏任务栏、获取状态

热门文章

  1. Android ViewPager+HorizontalScrollView实现标题栏滑动(腾讯新闻)
  2. Angular——内置服务
  3. react Native环境 搭建
  4. java对于07excel的读、改、写、并触发计算
  5. 代码分析工具splint安装介绍
  6. java代码完全手写模仿qq登录界面
  7. xmpp之配置Xcode(1)
  8. ubuntu安装nvidia驱动以及cuda教程
  9. springmvc视图解析
  10. [Algorithm] 4. Ugly Number II