基本環境:
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屬性。
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,關閉上一個。查看是否還在登錄狀態。