基本环境: redis-2.8 apache-tomcat-6.0.41 nginx1.6.2 1.redis配置1.1配置redis访问密码到redis的目录下找的redis.conf,解开requirepass注释(此属性用于设置密码)。 如: requirepass root
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>下添加:
1
2
3
4
5
6
7
8
| <!-- 利用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属性。获取【下载地址】 springmvc整合mybatis框架源码 bootstrap 2.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" 3 nginx配置3.1注释默认访问在ngix的nginx/conf.d/下有个default.conf,将里面的listen 80 default_server改为: listen 80; 3.2在添加需要负载的应用服务器在ngix的nginx/conf.d/的创建一个conf,如test.conf。在里面添加upstream pool配置段,将各个需要负载服务器的地址填到下面: 1
2
3
4
5
| upstream pool{
server 127.0.0.1:8080;
server 127.0.0.1:8081;
server 127.0.0.1:8082;
}
|
3.3配置访问域名继续在test.conf中添加:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
| 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;
}
}
|
3.4配置静态资源访问1
2
3
4
5
6
7
8
9
10
| 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;
}
}
|
3.5修改请求体的大小在http {}里增加 client_max_body_size属性,此属性会影响很多的地方,例如上传。 client_max_body_size 100m; 4 启动nginx和tomcat,测试测试负载均衡: 启动nginx和所有tomcat,然后到网页登录,然后启动另一个tomcat,关闭上一个。查看是否还能访问。开启所有tomcat用工具发起大量请求,查看请求是否被分发到各个tomcat。 测试session共享: 启动nginx和一个tomcat,然后到网页登录,然后启动另一个tomcat,关闭上一个。查看是否还在登录状态。
|