nginx-tomcat负载均衡redis-session共享,静态资源分离
基本環(huán)境:
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,將里面的需要靜態(tài)處理的文件,例如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>下添加:
?
?<!--?利用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/的創(chuàng)建一個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.3配置訪問域名
繼續(xù)在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;??}??}3.4配置靜態(tài)資源訪問
??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用工具發(fā)起大量請求,查看請求是否被分發(fā)到各個tomcat。
測試session共享:
啟動nginx和一個tomcat,然后到網頁登錄,然后啟動另一個tomcat,關閉上一個。查看是否還在登錄狀態(tài)。
轉載于:https://blog.51cto.com/lizhuan/1784904
總結
以上是生活随笔為你收集整理的nginx-tomcat负载均衡redis-session共享,静态资源分离的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ArcGIS Server 开发之鹰眼地
- 下一篇: 程序员的进阶之路