`

手把手教你负载均衡-tomcat1.7+nginx+memcached

阅读更多

一.为什么开始写博文

      最近郑州这边也兴起了,像北上广面试的时候需要问有技术博客,参与过开源的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文件的修改

         

       修改关闭端口 我的分别是

  1. tomcat1:18005
  2. tomcat2:28005
  3. tomcat3:38005

      修改连接端口 我的分别是

  1. tomcat1:18080
  2. tomcat2:28080
  3. tomcat3:38080 

    

 

     修改长链接端口我的分别是

  1. tomcat1:18009
  2. tomcat2:28009
  3. tomcat3:38009

     

     修改Engine 起对应的名称

  1. tomcat1     jvmRoute=“tomcat1”
  2. tomcat2     jvmRoute ="tomcat2"
  3. tomcat3     jvmRoute ="tomcat3"

   

 

 修改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的配置附件可以下载

 

  • 描述: UltraEdit文件上传tomcatsesson共享的动画
  • 大小: 2.2 MB
0
2
分享到:
评论

相关推荐

    tomcat-redis-session-manager tomcat+nginx+redis集群所需jar

    这个"tomcat-redis-session-manager tomcat+nginx+redis集群所需jar"压缩包提供了在这样的架构中实现会话共享所需的Java类库。下面将详细解释其中涉及的技术点: 1. **Apache Tomcat**: Apache Tomcat是一款开源的...

    apache-tomcat-7.0.54+memcached+nginx

    在这个场景中,我们关注的是如何在Tomcat 7集群中配置和使用memcached以及配合Nginx进行负载均衡。Memcached是一种分布式内存对象缓存系统,可以提高Web应用的性能,而Nginx则是一个高性能的HTTP和反向代理服务器,...

    Nginx+tomcat7+java1.7+memcached进行共享session缓存必须的一些jar包

    Nginx+tomcat7+java1.7+memcached进行共享session缓存必须的一些jar包,支持nginx和memcached任意版本,但tomcat仅限7.X版本,Java的JDK版本最好用1.7的。

    Linux负载均衡tomcat+nginx+memcached整合所有相关jar

    Linux 负载均衡 tomcat+nginx+memcached整合所有相关jar 步骤地址:http://blog.csdn.net/qierkang/article/details/52873541

    Tomcat+memcached+Nginx实现session共享

    - **整合Nginx与Tomcat**:按照Nginx+Tomcat整合文档,配置Nginx以反向代理到多个Tomcat实例,并实现session共享。 - **测试验证**:创建多台Tomcat实例,配置好MSM,然后通过Nginx访问应用,检查session是否能在...

    nginx+tomcat7+memcached session会话保持

    最后,提供的压缩包文件`nginx+tomcat+memcached`可能包含了上述所有组件的配置文件、jar包和安装脚本,帮助用户快速搭建和测试这样的系统。在部署时,务必根据实际网络环境和服务器配置进行适当的调整,确保所有...

    教你搭建http php java服务器+ssl证书=https网站,Linux+Nginx-Apache PHP-Tomcat java+SSL证书.zip

    手把手教你搭建https服务器,部署ssl证书到php java服务器(Nginx-Apache PHP-Tomcat java+SSL证书) 1.购买免费的SSL证书 2.下载SSL证书 3.往nginx上新增ssl 4.往Apache上新增ssl 5.往Tomcat上新增ssl 6.解决警告 7....

    tomcat8+memcached session共享

    描述中提到的“nginx+tomcat8+memcached session共享所需jar包,直接放到tomcat/lib下即可”,暗示了实现这一功能需要一些特定的Java库(JAR包)。这些JAR包将集成到Tomcat的运行环境中,使Tomcat能够与Memcached...

    centsos6.5+jdk1.7+mysql5.5+tomcat7+nginx1.7安装手册

    ### CentOS 6.5 + JDK 1.7 + MySQL 5.5 + Tomcat 7 + Nginx 1.7 安装手册 #### 一、JDK 1.7 安装 ##### 1.1 下载JDK 1.7 - 访问Oracle官方下载页面:...

    tomcat8 + nginx + memcached + cas 实现负载均衡的配置包

    1,tomcat8的配置: 1.1修改tomcat8.x/conf/context.xml的配置如下: &lt;?xml version="1.0" encoding="UTF-8"?&gt; &lt;!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license ...

    Windows+Nginx+Memcached+Tomcat6负载均衡

    Windows+Nginx+Memcached+Tomcat6负载均衡

    nginx+tomcat7+jdk1.7+redis--jar.rar

    标题 "nginx+tomcat7+jdk1.7+redis--jar.rar" 提示我们这是一个关于在Web服务器架构中集成Nginx、Tomcat7、Java 1.7和Redis的解决方案,特别是涉及到使用Redis作为Session缓存的配置。描述中强调了在下载和使用这些...

    linux nginx负载均衡-图片缓存 + tomcat集群-session共享

    nginx-0.8.51下载 tomcat-6.0.20下载 pcre-8.12下载 2 环境描述 window7下运行的centos5.4的Vmware7虚拟机 nginx-0.8.51 tomcat-6.0.20 pcre-8.12 jdk-6u7-linux-i586 3 安装步骤 3.1 安装nginx所需的pcre ...

    Linux源码安装MySQL+MySQL主从+Nginx+Nginx负载均衡+redis+php+phpredis+tomcat

    在本教程中,我们将深入探讨如何在Linux环境中源码安装MySQL、MySQL主从复制、Nginx、Nginx负载均衡、Redis、PHP、phpredis以及Tomcat。这些技术是构建高效、可扩展的Web应用架构的基础。让我们逐一了解安装过程。 ...

    tomcat7+nginx+memcached 配置tomcat 集群以及负载均衡

    通过以上步骤,我们可以构建出一个高效、可靠的基于Tomcat 7、Nginx和Memcached的Web应用集群,有效地解决了session共享问题,实现了负载均衡,提高了系统的稳定性和性能。在实际操作中,可能还需要根据具体需求调整...

    负载均衡nginx+tomcat+terracatta+nfs+mysql

    在构建高性能、高可用性的Web服务环境中,"负载均衡nginx+tomcat+terracotta+nfs+mysql"是一个常见的架构组合。这个组合充分利用了各组件的优势,以实现数据的高效处理、分布式存储以及会话共享,确保系统的稳定性和...

    最新tomcat7+nginx/tengine+memcached共享session的jar包2016年12月

    最新tomcat7+nginx/tengine+memcached共享session的jar包2016年12月自己更新使用,更新的jar包解决了tomcat7下attribute报错的问题,理论Tomcat8以上版本可用,请自己测试。 asm-5.1.jar kryo-4.0.0.jar kryo-...

    redis+tomcat+nginx负载均衡配置

    在构建高性能、高可用性的Web服务时,"redis+tomcat+nginx负载均衡配置"是一个常见且有效的架构模式。这个组合充分利用了各个组件的优势,确保系统稳定、响应快速,并能够处理大量的并发请求。以下是关于这个配置的...

    tomcat7+memcached+nginx 集群架包(无ngnix架包)

    【标题】"tomcat7+memcached+nginx 集群架包(无ngnix架包)"指的是一个用于构建高性能、可扩展的Web应用集群的解决方案,但不包括nginx配置部分。在这个架构中,Tomcat7作为Java应用服务器处理HTTP请求,Memcached...

Global site tag (gtag.js) - Google Analytics