apache+tomcat 实现负载均衡和集群

一.准备
a、安装Aapche (httpd-2.2.22.tar.gz)
1.解压
 tar -xzf httpd-2.2.22.tar.gz
2.改变权限
 chown root.root -R httpd-2.2.22
3.配置安装路径,安装
        cd httpd-2.2.22
        ./configure --prefix=/usr/local/apache
        make && make install

 注:(如果用高版本apache自带的)有些LoadModules 模块没有的话
  在安装程序的/root/httpd-2.2.22/modules/proxy下找到 相应的*.c文件

  进入$APACHE_HOME/bin,执行以下命令以生成mod_proxy.so和mod_proxy_http.so文件:
  ./apxs -aic /root/httpd-2.2.22/modules/proxy/mod_proxy.c /root/httpd-2.2.22/modules/proxy/proxy_util.c //生成mod_proxy.so
  ./apxs -aic /root/httpd-2.2.22/modules/proxy/mod_proxy_http.c      //生成mod_proxy_http.so
  备注:apxs是apache中一个编译、安装扩展模块的工具,用于编译一个或多个源程序或目标代码文件为动态共享对象,使之可以用LoadModule指令在运行时加载到apache服务器中。


/usr/local/apache/bin/apachectl start  //启动
/usr/local/apache/bin/apachectl stop  //停止
/usr/local/apache/bin/apachectl restart  //重启


b.安装mod_jk (tomcat-connectors-1.2.32-src.tar.gz)
1.解压
        tar xzf tomcat-connectors-1.2.32-src.tar.gz
2.配置安装路径,安装
        cd tomcat-connectors-1.2.32-src/native/
        ./configure --with-apxs=/usr/local/apache/bin/apxs
        make && make install

        ll /usr/local/apache/modules/mod_jk.so

二.配置
tomcat配置修改
 server.xml文件
 1.找到 <Engine name="Catalina" defaultHost="localhost"> 修改为 <Engine name="Catalina" defaultHost="localhost" jvmRoute="worker_1">   //jvmRoute="worker标记"

 2.找到ajp端口配置(默认8009),apacheworker.worker_1.port=这个端口,端口不冲突可不改,
  <!-- Define an AJP 1.3 Connector on port 8009 -->
  <Connector port="8009" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />
  修改端口(测试改的8029)
  <Connector port="8029" enableLookups="false" redirectPort="8443" protocol="AJP/1.3" />


apache配置修改
a.修改/usr/local/apache/conf/httpd.conf,在httpd.conf文件的末尾添加如下内容:
 Include conf/extra/mod_jk.conf

b.在Apache\conf\extra\目录下新建文件:mod_jk.conf(touch mod_jk.conf),内容如下:
 #load module mod_jk-1.2.31-httpd-2.2.3.so is for Apache 2.2.x.
 LoadModule jk_module modules/mod_jk.so
 #配置 mod_jk conf
 #加载集群中的workers
 JkWorkersFile conf/workers.properties
 #加载workers的请求处理分配文件
 JkMountFile conf/uriworkermap.properties
 #指定jk的日志输出文件
 JkLogFile logs/mod_jk.log
 #指定日志级别
 JkLogLevel info

c.在Apache\conf\目录下新建文件:workers.properties,内容如下
 #worker列表
 worker.list=LB_worker,jkstatus
 #worker.list=worker_1,worker_2

 #第一个worker的配置,名为worker_1
 #tomcat的主机地址,如不为本机,请填写ip地址
 worker.worker_1.host=222.73.250.222
 #ajp13 端口号,对应tomcat配置文件server.xml中Connector port="8009",默认8009
 worker.worker_1.port=8029
 worker.worker_1.type=ajp13
 #负载的权重值,越高表示负载越大
 worker.worker_1.lbfactor=2

 #第二个worker的配置,名为worker_2
 worker.worker_2.host=222.73.250.164
 #ajp13 端口号,对应tomcat配置文件server.xml中Connector port="9009"
 worker.worker_2.port=8029
 worker.worker_2.type=ajp13
 worker.worker_2.lbfactor=1

 #LB_worker,用于负载均衡分发的控制器
 worker.LB_worker.type=lb
 #重试次数
 worker.LB_worker.retries=3
 #指定负载的worker列表,用逗号分隔
 worker.LB_worker.balance_workers=worker_1,worker_2
 #配置session会话是否为粘性
 #这样负载均衡器lb就会尽量保持一个session,也就是使用户在一次会话中跟同一个Tomcat进行交互
 worker.LB_worker.sticky_session=true
 #如果sticky_session设为true时,此处一般设为false
 worker.LB_worker.sticky_session_force=false
 #设置运行状态的控制器
 worker.jkstatus.type=status

d.Apache\conf\目录下新建文件:uriworkermap.properties,内容如下:
 #所有请求都由LB_worker这个worker处理
 /*=LB_worker
 #所有包含jkstatus请求的都由名称叫jkstatus的这个worker处理
 /jkstatus=jkstatus

 #所有以.gif、.jpg等等结尾的请求都不经过名称叫LB_worker的worker处理 
 # ! 表示 非 的意思 
 #!/*.jpg=LB_worker #tomcat不处理图片,图片由apache处理.静态文件放在Apache2.2\htdocs\下,路径一致就OK

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值