总结apache2.2和2.4和tomcat负载均衡配置和总结。

apache负载均衡有3种方式,本人只搭配了两种方式

一.mok_jk方式(目前这个方式只配置成功2.2版本,2.4未配置。)

1.apache2.2配置准备工作

1.1下载安装包httpd-2.2.22-win32-x86-no_ssl.msi

1.11下载后安装到指定文件夹。如:F:\apache22

1.2下载mod_jk-1.2.31-httpd-2.2.3.so

1.21把该文件放置到F:\apache22\modules文件夹下

1.3下载tomcat7.0或以上版本

1.31解压后复制另一个,改名为tomcat1,tomcat2,改端口号

2.开始配置第一步。修改配置文件

F:\apache22\conf下的httpd.conf

然后对http.conf(f:\Apache2f\conf\http.conf)配置文件进行修改-使用记事本打开就行

    (1)修改ServerRoot Apache的根路径:

        (37行)ServerRoot"c:/Apache22"改成=>ServerRoot "f:/Apache22"

    (2)修改ServerName你的主机名称:

        (217行)ServerNamewww.example.com:80将前面的#去掉,该属性在从命令行启动Apache时需要用到。

    (3)修改DocumentRoot Apache访问的主文件夹目录,就是php、html代码文件的位置。Apache默认的路径是在htdocs(f:\Apache22\htdocs)下面,里面会有个简单的入口文件index.html。这个路径可以自己进行修改,我这里将其配置在我自己新建的文件夹www(D:\phpEnv\www)下。

(247行) DocumentRoot "c:/Apache22/htdocs"

        <Directory"c:/Apache22/htdocs">

改为=>

        

DocumentRoot "f:/Apache22/htdocs"

        <Directory"f:/Apache22/htdocs">

    (4)修改入口文件配置:DirectoryIndex一般情况下我们都是以index.php、index.html、index.htm作为web项目的入口。Apache默认的入口只有index.html需要添加其他两个的支持,当然这个入口文件的设置可以根据自己的需要增减,如果要求比较严格的话可以只写一个index.php,这样在项目里面的入口就只能是index.php

(274行)<IfModuledir_module>

        DirectoryIndexindex.html

       </IfModule>

改为=>

       <IfModuledir_module>

        DirectoryIndex  index.jsp index.htm index.html

        </IfModule>

   (5)设定serverscript的目录:

        (358行)ScriptAlias/cgi-bin/ "c:/Apache22/cgi-bin/"改为=> ScriptAlias/cgi-bin/ "f:/Apache22/cgi-bin"

  (6)(380行)

        <Directory"c:/Apache22/cgi-bin">

          AllowOverride None

          Options None

          Require all granted

        </Directory>

改为=>

        <Directory"f:/Apache22/cgi-bin">

          AllowOverride None

          Options None

          Require all granted

        </Directory>


3.修改httpd.conf文件内容

打开httpd.conf文件,最后一行加上:Include conf/mod_jk.conf


4在conf文件夹下创建文件mod_jk.conf,workers.properties。
mod_jk.conf输入
LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so
JkWorkersFile conf/workers.properties
#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名
JkMount /*.jsp controller
workers.properties输入
#server
worker.list = controller
#========tomcat1========
worker.tomcat1.port=8121
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor = 1
#========tomcat2========
worker.tomcat2.port=8122
worker.tomcat2.host=localhost
worker.tomcat2.type=ajp13
worker.tomcat2.lbfactor = 1

#========controller,负载均衡控制器========
worker.controller.type=lb
worker.controller.balanced_workers=tomcat1,tomcat2
worker.controller.sticky_session=false
worker.controller.sticky_session_force=1
#worker.controller.sticky_session=1

5,把测试数据放到webapps下启动tomcar1,tomcat2,
6
、接下来就可以启动Apache了

开始---运行,输入cmd,打开命令提示符。接着进入f:\Apache22\bin目录下回车httpd回车,如图所示.

没有报错的话就可以测试了(保持该命令窗口为打开的状态)。

    用浏览器访问会出现“It works”那么就说明apache已经正确安装并启动了。也可以自己写一个简单的index.html文件也可以打开。



二.mod_proxy代理方式

apache2.2

<p><strong><span style="font-size:24px;">1. 准备工作</span></strong></p><p>首先下载Tomcat8 和Apache2.2</p><p>然后安装Apache,安装完成后在IE中输入localhost访问,如果出现It Works则表示Apache安装好了,然后解压缩到Tomcat1和Tomcat2两个目录中。</p><p>分别启动Tomcat1和Tomcat2看是否可以正常启动。</p>
1直接加到F:\apache22\conf\httpd.conf文件最下面

ProxyPass / balancer://proxy/
<Proxy balancer://proxy>   
 BalancerMember http://127.0.0.1:8080/
 BalancerMember http://127.0.0.1:8081/
</Proxy>
2注意端口要和tomcat2对应如下tomcat2

…………
<Server port="9005" shutdown="SHUTDOWN"> #此处修改为9005,避免与tomcat1的8005冲突
…………
…………
    <Connector port="8081" protocol="HTTP/1.1" 
               connectionTimeout="20000" 
               redirectPort="8443" /> #此处修改为8081,避免与tomcat1的8080冲突
…………
    <!-- Define an AJP 1.3 Connector on port 8009 -->
    <Connector port="9009" protocol="AJP/1.3" redirectPort="8443" /> #此处修改为9009,避免与tomcat1的8009冲突。如果使用的是mod_proxy_blancer方式此处可以注释掉,如果使用的是mod_jk方式则此处必须存在
…………
      

3打开httpd.conf文件,取消下面四行的注释,用以打开代理所需的.so支持模块。或直接添加

View Code
1 #LoadModule proxy_http_module modules/mod_proxy_http.so
2 #LoadModule proxy_connect_module modules/mod_proxy_connect.so
3 #LoadModule proxy_module modules/mod_proxy.so
4 #LoadModule proxy_module modules/mod_proxy_blancer.so
4。
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/> #去掉该行注释即可实现session复制功能
…………



apache2.4

<p><strong><span style="font-size:24px;">1. 准备工作</span></strong></p><p>首先下载Tomcat7 和Apache2.4</p><p>然后安装Apache,安装完成后在IE中输入localhost访问,如果出现It Works则表示Apache安装好了,然后解压缩到Tomcat1和Tomcat2两个目录中。</p><p>分别启动Tomcat1和Tomcat2看是否可以正常启动。</p><p>
</p><p><strong><span style="font-size:24px;">2. 配置Apache2.4</span></strong>
</p><p>   ①打开conf/httpd.conf文件,加载以下模块。</p><p>#---------------------start------------------------
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule slotmem_shm_module modules/mod_slotmem_shm.so</p><p>LoadModule speling_module modules/mod_speling.so
LoadModule ssl_module modules/mod_ssl.so</p><p><pre name="code">LoadModule lbmethod_byrequests_module modules/mod_lbmethod_byrequests.so
#----------------------end---------------------

 ② 如果你想看到小猫页面,

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

在上面的index.html下面添加index.jsp就可以了


③去掉Include conf/extra/httpd-vhosts.conf的注释标记#。


④在文件末尾加反向代理

ProxyRequests Off
<proxy balancer://cluster>
     BalancerMember ajp://127.0.0.1:8009 loadfactor=1 route=jvm1
     BalancerMember ajp://127.0.0.1:9009 loadfactor=1 route=jvm2
</proxy>


⑤修改conf/extra/httpd-vhosts.conf文件。

注释掉所有的dummy-host,添加以下内容

<VirtualHost *:80>
         ServerAdmin zengwei.shao@samsung.com
         ServerName localhost
         ServerAlias localhost
         ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
         ProxyPassReverse / balancer://cluster/
         ErrorLog "logs/lbtest-error.log"
         CustomLog "logs/lbtest-access.log" common
</VirtualHost>


2.配置Tomcat

Tomcat2 的修改conf/server.xml

① <Server port="8005" shutdown="SHUTDOWN">修改为9005


②修改<Service name="Catalina">下的

<Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" />中的8080为9080

③<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />修改为9009


④ <Engine name="Catalina" defaultHost="localhost">在末尾加 jvmRoute="jvm2"

同时修改Tomcat1的这个标签为jvmRoute="jvm1"


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

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

        <Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>

</Cluster>


配置完成之后,启动两个Tomcat测试一下Tomcat是否可以正常启动

如果可以正常启动,则进行下面步骤


在webApps下面添加Test目录,添加Test.jsp

<%@ page contentType="text/html; charset=GBK" %>
<%@ page import="Java.util.*" %>
<html><head><title>Cluster App Test</title></head>
<body>
Server Info:
<%
out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>
<%
  out.println("<br> ID " + session.getId()+"<br>");
  String dataName = request.getParameter("dataName");
 
  if (dataName != null && dataName.length() > 0) {
     String dataValue = request.getParameter("dataValue");
     session.setAttribute(dataName, dataValue);
  }  
 
  out.print("<b>Session 列表</b>");  
 
  Enumeration e = session.getAttributeNames();
 
  while (e.hasMoreElements()) {
     String name = (String)e.nextElement();
     String value = session.getAttribute(name).toString();
     out.println( name + " = " + value+"<br>");
         System.out.println( name + " = " + value);
   }
%>
  <form action="test.jsp" method="POST">
    名称:<input type=text size=20 name="dataName">
     <br>
    值:<input type=text size=20 name="dataValue">
     <br>
    <input type=submit>
   </form>
</body>
</html>

创建WEB-INF目录,创建web.xml

?xml version="1.0" encoding="utf-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">
    <distributable />
  </web-app>


最后启动Apache2.4,在页面中输入localhost\test\test.jsp进行测试。


注意:Apache有可能启动不起来,那么解决方式是查看Apache安装目录下的logs目录下的error.log文件,

根据log文件解决可能存在的问题。直到Apache可以正常启动,至此Apache就可以正常启动了。


 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值