nginx-tomcat负载均衡redis-session共享,静态资源分离
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>下加入:
- <!-- 利用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属性。
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的地址填到以下:
- 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,关闭上一个。查看是否还在登录状态。
nginx-tomcat负载均衡redis-session共享,静态资源分离的更多相关文章
- nginx+tomcat负载均衡和session复制
本文介绍下传统的tomcat负载均衡和session复制. session复制是基于JVM内存的,当然在当今的互联网大数据时代,有更好的替代方案,如将session数据保存在Redis中. 1.安装n ...
- 使用nginx做负载均衡的session共享问题
查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享PHP服务器有多台,用nginx做负载均衡,这样同一个IP访问同一个页面会被分配到不同的服务器上,如果session不 ...
- Nginx和Tomcat负载均衡实现session共享(转)
以前的项目使用Nginx作为反向代理实现了多个Tomcat的负载均衡,为了实现多个Tomcat之间的session共享,使用了开源的Memcached-Session-Manager框架. 此框架的优 ...
- Nginx和Tomcat负载均衡实现session共享
以前的项目使用Nginx作为反向代理实现了多个Tomcat的负载均衡,为了实现多个Tomcat之间的session共享,使用了开源的Memcached-Session-Manager框架. 此框架的优 ...
- linux+nginx+tomcat负载均衡,实现session同步
第一部分:nginx反向代理tomcat 一.软件及环境 软件 系统 角色 用途 安装的软件 ip地址 Centos6.5x86_64 nginx 反向代理用户请求 nginx 172.16.249. ...
- Tomcat 负载均衡 及Session共享
原文:https://www.sunjianhua.cn/archives/tomcat-high-availability.html 一.安装java环境 二.安装tomcat(apache-tom ...
- nginx+tomcat+redis负载均衡及session共享
概述 本文档是用来详细描述 nginx+tomcat+redis负载均衡实现session共享 所需软件及下载地址 软件名称 下载地址 功能说明 Nginx-v1.6.0 http://nginx.o ...
- keepalived+nginx+tomcat+redis实现负载均衡和session共享(原创)
keepalived+nginx+tomcat+redis实现负载均衡和session共享 直接上链接,码了一天,就不再重写了,希望能帮到大家,有问题欢迎留言交流.
- nginx tomcat负载均衡 使用redis session共享
环境准备 1.准备一台nginx服务器 ip192.168.1.133 端口81 安装过程: #首先安装依赖: yum -y install gcc-c++ yum -y install pcre p ...
- haproxy+tomcat实现负载均衡以及session共享(linux centos7环境)
一.安装HAProxy 1.进入home目录,下载最新haproxy安装包. cd /home wget http://haproxy.1wt.eu/download/1.4/src/haproxy- ...
随机推荐
- mybatis使用中类属性名和数据库表字段名问题
起初我以为上述二者必须一致,后来发现也是可以像Hibernate那样在xml文件中进行映射的. <mapper namespace="com.tenghu.mybatis.model. ...
- git Eclipse项目不显示当前分支
问题: 在Eclipse中,导入新的git项目,在项目上不再显示当前所处的分支,也不再显示修改了哪些文件 解决: 右键选中项目 --> Team --> Share Project ...
- Jmeter接口测试---get和post及解决乱码问题
Jmeter接口测试---get请求 1.创建一个线程组 测试计划---添加---Threads ---线程组 2.添加http请求,步骤如下图所示: 3.添加带有参数的get请求,如下图展示内容: ...
- vux+vuex+vue+Es6开发微信公众号的坑
初次开发微信公众号遇到很多问题,可能是基础不怎么牢靠,最近几天一直在看vue的东西,现在就来慢慢介绍vux和vue这个骚东西的用法: 细看文档一步步来, npm install vux --save ...
- Shell script之How to write
Write shell script: 1) Editor like vi or mcedi 2) Set execute permission for your script chmod perm ...
- canvas一周一练 -- canvas绘制太极图(6)
运行效果: <!DOCTYPE html> <html> <head> </head> <body> <canvas id=" ...
- layer iframe层弹出图片
这个js是在一个layer iframe弹出层中,点击按钮弹出图片
- linux nethogs-终端下的网络流量监控工具
推荐:更多linux 性能监测与优化 关注:linux命令大全 有很多适用于Linux系统的开源网络监视工具.比如说,你可以用命令iftop来检查带宽使用情况.netstat用来查看接口统计报告,还有 ...
- Swing之登录界面
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Login extends JFrame ...
- PAT 1134 Vertex Cover
A vertex cover of a graph is a set of vertices such that each edge of the graph is incident to at le ...