? ? ? 最近郑州这边也兴起了,像北上广面试的时候需要问有技术博客,参与过开源的github项目吗,都30的人了,现在开始写我想也不晚,现在开始吧自己的学习都记录下来,之前很多东西都了解,但是缺少纪录,现在开始纪录吧。
?
? ? ? 做了多年的企业内部的java开发一直只限于写代码,带项目也是针对内网来的一个tomcat来跑,用户量也很少,自己也不怎么跳槽(导致知识面比较窄),都是业务上比较熟悉,根据需求都可以完成开发。
? ? ? 公司的战略开始互联网项目,开始了解了负载均衡,开始恶补跟之前的同事进行交流,了解了nginx,通过了解发现很多的互联网网站都是实用的nginx,访问一些网站报的404都是nginx报的,才知道原来可以通过nginx下配置多个tomcat来进行负载一个tomcat的压力。好神奇。
? ? ? 公司的人员访问量并发越来越多,开始预见性的尝试使用,但是nginx和tomcat使用后发现一个问题后台无法登陆,nginx来回的跳转,真是日了狗了。了解了原来是3个tomcat之前没有进行session的共享。尝试自己解决一下,了解了memcached 可以实现sesson的共享。
?
? ? ?nginx 负责跳转下面3个tomcat,3个tomcat用memcached负责进行session的共享,3个tomcat的内容完全一样,现在我吧操作步骤一步一步告诉大家希望多分享交流
? ? ?关于centos下nginx ?和 mysql,jdk安装我之前的博文有直接观看吧
? ? ?1.三个空的tomcat
?
? ? ? 2.tomcat目录结构?
?
? ? 3.加入memcached的lib的jar包(我用的mac本的UltraEdit)
? ? ? 3.1ultraEdit-文件--浏览
? ? ? ??
? ????3.2 查看3个tomcat路径种lib是否有新加入的
? ? ? ??
?
? ? ???3.3 查看3个tomcat的conf中的server.xml文件的修改
? ? ? ? ?
? ? ? ?修改关闭端口 我的分别是
? ? ? 修改连接端口?我的分别是
? ??
?
? ? ?修改长链接端口我的分别是
? ? ?
? ? ?修改Engine 起对应的名称
? ?
?
?修改Context中 ?docBase 是对应webapp里面的项目名称,3个tomcat中都加入这样的代码
<Context docBase="mfb" path="/mfb" reloadable="false" source="org.eclipse.jst.jee.server:mfb"> <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager" memcachedNodes="n1:127.0.0.1:11211" sticky="false" sessionBackupAsync="false" lockingMode="uriPattern:/path1|/path2" requestUriIgnorePattern=".*\.(ico|png|gif|jpg|css|js)$" transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"/> </Context>
?
访问后http://192.168.1.201:18080/mfb/manage/admin.jsp
?
访问后http://192.168.1.201:28080/mfb/manage/admin.jsp
?
访问后http://192.168.1.201:38080/mfb/manage/admin.jsp
?
? ?4.安装memcached
4.1查询命令
yum search memcached
?
?
?
4.2 安装命令
yum -y install memcached
?
?4.3 命令帮助
memcached –h
?
?注意:默认的端口是11211?
?
?4.3 加入service服务命令
?
chkconfig --level 2345 memcached on
? ? ?以后就可以通过service memcached start|stop|restart等命令来启动、关闭、重启memcached服务。
?
?
?
5.nginx的配置
5.1进入nginx的conf路径
?
?
5.2创建gzip.conf写入
gzip on; gzip_min_length 1000; gzip_types text/plain text/css application/x-javascript;
?
5.3创建proxy.conf空文件(注意:Host $host:180;是根据我的nginx访问的端口来的因为我本机centos80端口已经占用了我改了下端口)
proxy_redirect off; proxy_set_header Host $host:180; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; client_max_body_size 10m; client_body_buffer_size 128k; proxy_connect_timeout 300; proxy_send_timeout 300; proxy_read_timeout 300; proxy_buffer_size 4k; proxy_buffers 4 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k;
?5.4修改nginx.conf
#Nginxwindow #user niumd niumd; #CPU2CPU worker_processes 4; # #error_log logs/error.log; #error_log logs/error.log notice; error_log logs/error.log info; #pid pid logs/nginx.pid; events { #IOlinuxepollFreeBSDkqueuewindow #use epoll; # worker_connections 2048; } http { include mime.types; include proxy.conf; default_type application/octet-stream; # #log_format main ‘$remote_addr - $remote_user [$time_local] $request ‘ # ‘"$status" $body_bytes_sent "$http_referer" ‘ # ‘"$http_user_agent" "$http_x_forwarded_for"‘; #access_log off; access_log logs/access.log; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; client_header_buffer_size 1k; large_client_header_buffers 4 4k; sendfile on; tcp_nopush on; tcp_nodelay on; #keepalive_timeout 75 20; include gzip.conf; upstream localhost { #iptomcatsession #ip #ip_hash; server localhost:18080; server localhost:28080; server localhost:38080; } server { listen 180; server_name localhost; location / { proxy_connect_timeout 3; proxy_send_timeout 30; proxy_read_timeout 30; proxy_pass http://localhost; } } }
? 5.5 启动试试
? ? 启动:
./nginx
? 关闭:
./nginx -s stop
?
?
?
1.启动nginx
2.启动mencached
3启动tomcat
?
?
?
?
关于tomcat的配置 ?和 nginx的配置附件可以下载
?
手把手教你负载均衡-tomcat1.7+nginx+memcached
原文:http://394498036.iteye.com/blog/2290085