负载均衡与集群之apache+tomcat

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

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

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

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

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

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

            负载均衡与集群之apache+tomcat_第1张图片

                                                                                                                      图1 系统通用架构设计

负载均衡与集群之apache+tomcat_第2张图片

                                                                                                                        图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


    ServerAdmin [email protected]
    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
       
                Order allow,deny
                Allow from all
                AllowOverride all
                Options FollowSymLinks
                DirectoryIndex index.jsp
       

        Alias /ad "/data/hmfk/ad/www"
       
                 Order allow,deny
                Allow from all
                AllowOverride all
                Options FollowSymLinks
                DirectoryIndex loginAdmin.htm
       




    ServerAdmin [email protected]
    DocumentRoot /data/zwlsshop/www
    ServerName  temp2.com
    ServerAlias http://temp2.com
        JkMount /*.jsp shop
        JkMount /*.action shop
       
                Order allow,deny
                Allow from all
                AllowOverride all
                Options FollowSymLinks
                DirectoryIndex index.jsp
       




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

ExtendedStatus On

        SetHandler server-status
        Order Deny,Allow
        Allow from all


apache 设置完毕。

2 tomcat

 修改tomcat 

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

 

修改ajp连接端口

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

添加集群功能


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




 

   






你可能感兴趣的:(java,linux,工作,工具,oracle)