负载均衡与集群之apache+tomcat

45 篇文章 1 订阅
32 篇文章 0 订阅

       具体的负载均衡是什么意思,我就不详细说了,网上搜下便有,简单的说就是把接受到的请求按照设定分发到后台集群中不同的服务上

            集群的意思也比较简单,就是多台服务器对外提供一致的功能,在外界看来,就是一个。但在内部,则有很多个相似的服务器。

       这里再说一下正向代理和反向代理吧。

       正向代理 是一个位于客户端和原始服务器(origin server)之间的服务器,为了从原始服务器取得内容,客户端向代理发送一个请求并指定目标(原始服务器),然后代理向原始服务器转交请求并将获得的内容返回给客户端。客户端必须要进行一些特别的设置才能使用正向代理。

        反向代理正好相反,对于客户端而言它就像是原始服务器,并且客户端不需要进行任何特别的设置。客户端向反向代理 的命名空间(name-space)中的内容发送普通请求,接着反向代理将判断向何处(原始服务器)转交请求,并将获得的内容返回给客户端,就像这些内容 原本就是它自己的一样。

       负载均衡和集群的具体配置步骤,我就不再仔细描述,下面我就先说下我在上个公司做的项目使用到的均衡技术,利用到的jsp服务器是tomcat6,前端web反向代理服务器是apache,操作系统为redhat 64位。

           

                                                                                                                      图1 系统通用架构设计


                                                                                                                        图2 项目部署结构图


 反向代理方法有很多种,这里我们用的是jk技术,操作步骤如下。

   1、apache

      编辑apache   配置文件httpd.conf,添加以下

           ServerTokens ProductOnly
           ServerSignature Off

      隐藏apache版本信息

            LoadModule jk_module modules/mod_jk.so

           JkWorkersFile conf/workers.properties

      其中,mok_jk.so自己从网上下载,我下载的源码,自己编译以适应64位系统,放到lib下面,workers.properties放在conf文件加下,内容如下:

  worker.list = controller ,shop, status

worker.jvm0.port=8009
worker.jvm0.host=127.0.0.1
worker.jvm0.type=ajp13
worker.jvm0.lbfactor = 1

worker.jvm1.port=8019
worker.jvm1.host=127.0.0.1
worker.jvm1.type=ajp13
worker.jvm1.lbfactor = 1

worker.jvm10.port=8109
worker.jvm10.host=127.0.0.1
worker.jvm10.type=ajp13
worker.jvm10.lbfactor = 1

worker.jvm12.port=8129
worker.jvm12.host=127.0.0.1
worker.jvm12.type=ajp13
worker.jvm12.lbfactor = 1


worker.controller.type=lb
worker.controller.balanced_workers=jvm0,jvm1
#worker.controller.sticky_session=false
worker.controller.sticky_session_force=0
worker.controller.sticky_session=1

worker.shop.type=lb
worker.shop.balanced_workers=jvm10,jvm12
#worker.shop.sticky_session=false
worker.shop.sticky_session_force=0
worker.shop.sticky_session=1



worker.status.type=status


在浏览器里通过访问/status能够查看jk工作状态

其中 1代表true,0代表false
sticky_session=1表示黏性请求,sticky_session_force=0表示黏性不是强制的。

设置访问日志按天生成文件,设置如下

 CustomLog "|/usr/local/apache/httpd/bin/rotatelogs /usr/local/apache/httpd/logs/access_%Y_%m_%d.log 86400 480" common


Include conf/extra/httpd-vhosts.conf

开启虚机,httpd-vhosts.conf内容如下

NameVirtualHost *:80

<virtualhost *:80>
    ServerAdmin zwls999@126.com
    DocumentRoot /data/hmfk/usr/www
    ServerName www.temp.com
    ServerAlias http://www.temp.com
        JkMount /*.jsp controller
        JkMount /*.action controller
        JkMount /select*.html controller
        JkMount /email/*.html controller
        JkMount /u/*.html controller
        JkMount /ad/*.jsp controller
        JkMount /ad/*.action controller
        JkMount /ad/*.html controller
        JkMount /ad/*.htm controller
        <Directory "/data/hmfk/usr/www">
                Order allow,deny
                Allow from all
                AllowOverride all
                Options FollowSymLinks
                DirectoryIndex index.jsp
        </Directory>
        Alias /ad "/data/hmfk/ad/www"
        <Directory "/data/hmfk/ad/www">
                 Order allow,deny
                Allow from all
                AllowOverride all
                Options FollowSymLinks
                DirectoryIndex loginAdmin.htm
        </Directory>

</virtualhost>


<virtualhost *:80>
    ServerAdmin zwls999@126.com
    DocumentRoot /data/zwlsshop/www
    ServerName  temp2.com
    ServerAlias http://temp2.com
        JkMount /*.jsp shop
        JkMount /*.action shop
        <Directory "/data/zwlsshop/www">
                Order allow,deny
                Allow from all
                AllowOverride all
                Options FollowSymLinks
                DirectoryIndex index.jsp
        </Directory>
</virtualhost>


最后添加下面,能够在浏览器里面访问apache服务状态

ExtendedStatus On
<Location /server-status>
        SetHandler server-status
        Order Deny,Allow
        Allow from all
</Location>


apache 设置完毕。

2 tomcat

 修改tomcat 

修改tomcat各个端口,确保tomcat之间端口不冲突。

 <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

修改ajp连接端口

<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">

修改jvmRoute,确保和apache配置相同。

<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>

添加集群功能


       至此,apache和tomcat负载均衡和集群配置完毕。




 

   






  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值