Apache2.2+Tomcat7.0集群 完美攻略

Apache2.2+Tomcat7.0集群

完美攻略

 

一、软件准备

Apache 2.2  

tomcat-7.0.42

mod_jk-1.2.31-httpd-2.2.3.so

 

二、Apache安装

1、先准备好软件:

2、安装Apache,配置成功一个普通网站服务器

3、运行下载好的“Apache2.2.msi”,出现如下界面:

4、 出现Apache HTTPServer 2.0.55的安装向导界面,点“Next”继续


5、 确认同意软件安装使用许可条例,选择“I accept the terms in the license agreement”,点“Next”继续


6、 将Apache安装到Windows上的使用须知,请阅读完毕后,按“Next”继续


7、 设置系统信息,在NetworkDomain下填入您的域名(比如:goodwaiter.com),在Server Name下填入您的服务器名称(比如:www.goodwaiter.com,也就是主机名加上域名),在Administrator's Email Address下填入系统管理员的联系电子邮件地址(比如:yinpeng@xinhuanet.com),上述三条信息仅供参考,其中联系电子邮件地址会在当系统故障时提供给访问者,三条信息均可任意填写,无效的也行。下面有两个选择,图片上选择的是为系统所有用户安装,使用默认的80端口(如果你的电脑安装了OA系统,你要先把OA系统的端口先改掉,再安装Apache。),并作为系统服务自动启动;另外一个是仅为当前用户安装,使用端口8080,手动启动。一般选择如图所示。按“Next”继续。]


8、 选择安装类型,Typical为默认安装,Custom为用户自定义安装,我们这里选择Custom,有更多可选项。按“Next”继续

9、 出现选择安装选项界面,如图所示,左键点选“Apache HTTP Server 2.0.55”,选择“This feature, and all subfeatures, will be installed on local harddrive.”,即“此部分,及下属子部分内容,全部安装在本地硬盘上”。点选“Change...”,手动指定安装目录。


10、      我这里选择安装在“D:\Apache2.2”,一般建议不要安装在操作系统所在盘,免得操作系统坏了之后,还原操作把Apache配置文件也清除了。选“OK”继续。


11、      返回刚才的界面,选“Next”继续。


12、      确认安装选项无误,如果您认为要再检查一遍,可以点“Back”一步步返回检查。点“Install”开始按前面设定的安装选项安装。


13、      正在安装界面,请耐心等待,直到出现下面的画面。


14、      安装向导成功完成,这时右下角状态栏应该出现了下面的这个绿色图标,表示Apache服务已经开始运行,按“Finish”结束Apache的软件安装


15、      我们来熟悉一下这个图标,很方便的,在图标上左键单击,出现如下界面,有“Start(启动)”、“Stop(停止)”、“Restart(重启动)”三个选项,可以很方便的对安装的Apache服务器进行上述操作。


16、     

17、      好了现在我们来测试一下按默认配置运行的网站界面,在IE地址栏打“http://10.88.99.222”,点“转到”,就可以看到如下页面,表示Apache服务器已安装成功。


二、Tomcat-7 安装

     解压tomcat-7.0.42.zip文件到三个文件夹,分别为tomcat7-1、tomcat7-2、tomcat7-3。可解压到E盘下面,产生目录E:\tomcat7-1、E:\tomcat7-2、E:\tomcat7-3。以下均以t1、t2、t3代表三个tomcat服务器。配置JAVA_HOME和CLASSPATH系统环境变量,分别启动t1、t2、t3,确保tomcat可用,然后关闭tomcat。

设置环境变量:

1. 鼠标右击“我的电脑”->“属性”->“高级”->“环境变量”

2. 在系统变量里面分别新建变量

JAVA_HOME= C:\Java\jdk1.6.0_17

CLASSPATH= C:\Java\jdk1.6.0_17\lib\dt.jar;C:\Java\jdk1.6.0_17\lib\tools.jar;

 

本攻略仅为讲解配置过程,Apache和tomcat均工作在同一台机器上。实际部署时没有任何限制,Apache和单个tomcat可以分别部署在不同的服务器上。

 

三、Apache配置

     1、拷贝mod_jk-1.2.31-httpd-2.2.3.so到Apache 2.2的modules目录下。

     2、在Apache安装目录下找到conf/httpd.conf文件,以文本编辑器打开。

     去掉以下文本前的注释符(#)以便让Apache在启动时自动加载代理(proxy)模块。

  (注:这几个模块在配置文件中是相邻的)

     LoadModuleproxy_module modules/mod_proxy.so
     LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
     LoadModule proxy_balancer_modulemodules/mod_proxy_balancer.so
     LoadModule proxy_connect_modulemodules/mod_proxy_connect.so
     LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
     LoadModule proxy_http_module modules/mod_proxy_http.so

     向下拉动文档找到<IfModuledir_module>节点,在DirectoryIndex index.html后加上index.jsp,这一步只是为了待会配置完tomcat后能看到小猫首页,可以不做。

     继续下拉文档找到Includeconf/extra/httpd-vhosts.conf,去掉前面的注释符。

继续下拉文档找到Includeconf/extra/httpd-mpm.conf,去掉前面的注释符。

     用文本编辑器打开conf/extra/httpd-vhosts.conf,配置虚拟站点,在最下面加上

 

<VirtualHost 10.88.99.222:80>
   ServerAdmin 13921142140@139.com
   DocumentRoot "D:\chenzhouMH\WebRoot"
   ServerName 10.88.99.222
   ServerAlias localhost
   ProxyPass / balancer://cluster/ stickysession=jsessionid nofailover=On
   ProxyPassReverse / balancer://cluster/
   ErrorLog "logs/dummy-host.czs.gov.cn-error.log"
   CustomLog "logs/dummy-host.czs.gov.cn-access.log" common
</VirtualHost>

    <VirtualHost *:80> 
         ServerAdmin 
管理员邮箱
         ServerName 
域名(没有可用IP地址代替)
         ServerAlias localhost  域名别名
         ProxyPass /balancer://cluster/ stickysession=jsessionid nofailover=On 是否打开失败转移
         ProxyPassReverse /balancer://cluster/ 
         ErrorLog"logs/lbtest-error.log"
         CustomLog"logs/lbtest-access.log" common
     </VirtualHost>

 

     这里balancer://是告诉Apache需要进行负载均衡的代理,后面的cluster是集群名,可以随意取,两个日志引擎ErrorLog负责记录错误,CustomLog负责记录所有的http访问以及返回状态,日志名可以自己取,现取为lbtest。httpd-vhosts.conf配置完毕,回到httpd.conf,在文档最下面加上

 

ProxyPass / balancer://cluster/ lbmethod=byrequestsstickysession=JSESSIONID nofailover=Off timeout=30 maxattempts=3 
ProxyPassReverse / balancer://cluster/
<proxy balancer://cluster>
       BalancerMemberajp://10.88.99.222:11009 loadfactor=1 route=tomcat1
       BalancerMemberajp://10.88.99.222:12009 loadfactor=1 route=tomcat2
       BalancerMemberajp://10.88.99.222:13009 loadfactor=1 route=tomcat3
</proxy>

    <proxybalancer://cluster>用于配置工作在tomcat集群中的所有节点,这里的"cluster"必须与上面的集群名保持一致。Apache通过ajp协议与tomcat进行通信,ip地址和端口唯一确定了tomcat节点和配置的ajp接受端口。loadfactor是负载因子,Apache会按负载因子的比例向后端tomcat节点转发请求,负载因子越大,对应的tomcat服务器就会处理越多的请求,如两个tomcat都是1,Apache就按1:1的比例转发,如果是2和1就按2:1的比例转发。route参数对应后续tomcat配置中的引擎路径(jvmRoute)。

 3、在Apache安装目录下新增conf/jk目录夹,再新增mod_jk.conf文件,文件内容如果下:

#加载mod_jkModule

LoadModulejk_module modules/mod_jk-1.2.31-httpd-2.2.3.so   

#指定workers.properties文件路径

JkWorkersFileconf/jk/workers.properties 

#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器

JkMountFileconf/jk/uriworkermap.properties 

JkLogFilelogs/mod_jk.log 

JkShmFilelogs/mod_jk.shm 

JkLogStampFormat"[%a %b %d %H:%M:%S %Y]" 

JkRequestLogFormat"%w %V %T" 

JkMount /*controller

4、在Apache安装目录下找到conf/jk目录夹,新增uriworkermap.properties文件,文件内容如下:

/*=controller 

#!/*.gif=controller 

#!/*.jpg=controller 

#!/*.png=controller 

#!/*.css=controller 

#!/*.js=controller 

#!/*.htm=controller 

#!/*.html=controller 

/jkstatus=status

感叹号表示接下来的 URI 不要由 JK 进行处理,也就是Apache 直接处理所有的图片、css 文件、js 文件以及静态 html 文本文件

5、在Apache安装目录下找到conf/jk目录夹,新增workers.properties文件,文件内容如下:

worker.list = controller,status,tomcat1,tomcat2,tomcat3   

worker.template.type=ajp13 

worker.template.ping_mode=A 

worker.template.ping_timeout=20000 

worker.template.connection_pool_size=2048 

worker.template.socket_keepalive=true 

worker.template.socket_connect_timeout=20000 

worker.tomcat1.reference=worker.template 

worker.tomcat1.port=11009 

worker.tomcat1.host=10.88.99.222    

worker.tomcat2.reference=worker.template 

worker.tomcat2.port=12009 

worker.tomcat2.host=10.88.99.222

worker.tomcat3.reference=worker.template 

worker.tomcat3.port=13009 

worker.tomcat3.host=10.88.99.222

worker.controller.type=lb 

worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3

worker.controller.sticky_session=false 

worker.status.type=status 

worker.status.read_only=true

6、在Apache安装目录下找到conf/extra目录夹,修改httpd-mpm.conf文件

    MinSpareServers 5 允许最小的空闲进程

    MaxSpareServers 10允许最大的空闲进程

    StartServers 5 HTTP服务启动时创建的http进程数量

    MaxClients 150这个是服务器最大连结数,如果超过150联结的话系统就有等待情况,如果繁忙的话150是不够的

    MaxRequestsPerChild 0 这个建立设置10000,apache避免程序有异常,定义一个子进程完成多少个请求以后退出,如果是0就是永远不退出。如果对自己程序比较难把我的话建议设置一个稍大的值而不是0

    ServerLimit4000 使得无须重编译Apache就可以加大MaxClients

  重启Apache服务,如果此时访问http://localhost/将会返回503错误,打开刚才配置的错误日志logs/lbtest-error.log,可以看到错误原因是因为后台服务器没有响应,因为此时tomcat尚未配置和启动。

四、Tomcat配置

   如果仅仅为了配置一个可用的集群,Tomcat的配置将会非常简单。分别打开t1、t2、t3的server.xml配置文件(在E:\tomcat7-1\conf下面),对于t1,尽量采用默认的设置,而对t2、t3作较大改动以避免与t1冲突。如果不在同一台服务器上运行,对于端口就不需做改动。

 

 首先是配置关闭端口,找到<Server port="8005" shutdown="SHUTDOWN">,t1不变,把t2改为8006,t3改成8007

 

   下面配置Connector的端口,找到non-SSLHTTP/1.1 Connector,即tomcat单独工作时的默认Connector,t1改为8081,t2改为8082,t3改8083

 

   往下找到AJP 1.3 Connector,<Connectorport="8009" protocol="AJP/1.3"redirectPort="8443" />,这是tomcat接收从Apache过来的ajp连接请求时使用的端口,t1改成11009,t2改成12009,t3改成13009。注意,这里的端口对应Apache httpd.conf中BalancerMember中配置的ajp连接端口。

 

继续向下配置引擎,找到<Engine name="Catalina"defaultHost="localhost">,去掉这段或改为注释,把上方紧挨的<Enginename="Catalina" defaultHost="localhost" jvmRoute="tomcat1">注释符去掉,对于t2,去掉注释符并把tomcat1改为tomcat2。这里的jvmRoute对应Apachehttpd.conf中BalancerMember中配置的route参数。

 

Tomcat内存配置:在bin目录下找到catalina.bat文件,在些文件中加入一行代码:setJAVA_OPTS=-Xms512m-Xmx1024m -XX:PermSize=128M -XX:MaxNewSize=256m -XX:MaxPermSize=256m

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值