apache整合tomcat完成web服务器的动静态资源的别离解析51CTO博客 - 娱乐之横扫全球

apache整合tomcat完成web服务器的动静态资源的别离解析51CTO博客

2019年03月31日11时00分54秒 | 作者: 怀蕾 | 标签: 整合,静态,服务器 | 浏览: 2966

前段时间由于一点联系,接触到apache动态进负载均衡的试验,很天然想到apache合作其他软件运用完结需求,网上找了下,仍是比较多的apache整合tomcat的。所以我就将做到这个试验自始至终思路都写出来,共享下心得,也期望各位大拿们指导下~

由于出产环境不可能随时改动,所以管理员们只能不断去优化,所以在真不改动硬件的情况下最大程度运用资源就会导致许多新的技能诞生,apache整合tomcat也是便是其中之一。

意图:现有硬件条件下完结更大的负载

选用的原因:

Apache优势有:

       功用强大:apache为模块化的规划,经过扩展模块能够扩展许多功用。

       装备简略:apache的装备文件也比较简略易懂

       速度较快:处理静态页面功率搞,并且应对大规模并发衔接恳求

       功用安稳:apache在搞负载恳求下功用表现仍旧不俗。

可是apache的缺陷:

       只能支撑静态页面,对jsp,php等不支撑

       可是作为市场份额超越对折的挑选,挑选apache并不古怪。

Tomcat的优势:

       作为apache软件基金会和sun支撑的项目,有着最纯真的sun更新代码的表现,           serlet和jsp的容器,关于动态页面支撑非常好

       跨渠道性非常好,只需有JDK的支撑就能够运转

Tomcat缺陷:

       支撑静态页面功率不如apache

       可装备型,安稳性都不如apache

综大将apache和tomcat整合起来应该是优势互补。何况本身apache和tomato还都是apache软件基金会的子项目呢,

 

整合原理:apache本身和tomcat都是开源的,可独自作为web服务器的软件,所以整合他们需求别的一些东西进行二者之间通讯,相关于apache来说同等扩展功用,所以开源爱好者开发出了可运用的模块,这儿首要介绍的有4个模块。

       mod_jk2.so:前期的衔接器,在动静态页面过滤上运用正则表达式,装备较灵敏,可是现在现已没有开发人员的支撑了,版别就此中止了。

       mod_jk.so:上面的替代版别,支撑apache 1.x和2.x版别,大多都是用这个模块

       http-proxy:apache2.2版别呈现后呈现,能够完结双向署理,功用强大,只需翻开tomcat的http功用,然后用apache的proxy署理功用将动态恳求交给tomcat处理,静态自己处理即可

       proxy-ajp:专门针对tomcat整合开发,ajp协议专门署理对tomcat恳求,履行功率最高。

 

介绍完了之后进行操作进程了,首要看下环境

环境:RHEL 5.4

       Httpd-2.2.17.tar.gz

       Apache-tomcat-5.5.33.tar.gz

       tomcat-connectors-1.2.31-src.tar.gz     

       JDK-6u25-dlj-linux-i586.bin

下面便是详细的装置进程啦

 

1/首要上传相应的软件包到服务器上


 

2/下面便是装置相应的辅佐软件包,包含gcc编译器,libtool

3/下面就进行apache的装置,装置进程就不截图了,这儿把进程送上

[root@mail ~]#tar -zxvf  httpd-2.2.17.tar.gz
[root@mail ~]#cd httpd-2.2.17
[root@mail ~]#./configure prefix=/usr/local/apache \
enable-modules=most \  
enable-mods-shared=all \
enable-so                
[root@mail ~]#make ;make install

 

这儿有加载模块的选项解说下,prefix是装置途径,enable-modules=most是动态加载大多数模块静态编译到apache的二进制文件中,enable-mods-shard=all表明动态加载一切模块,这两个选项是可选的,可是最终一个—enable-so是有必要要有的,是一个加载模块的开关。这儿感谢南非蚂蚁的文档的协助。。。谢谢

 

4/装置完结之后当然是装置tomcat,咱们修正下目录称号,不影响的

    [root@mail ~]#cd /usr/local

[root@mail local]# tar -zxvf apache-tomcat-5.5.33.tar.gz
[root@mail local]#mv apache-tomcat-5.5.33  tomcat5.5.33

 

这儿由于tomcat默许解压缩的时分现已是二进制可履行文件了,就不必编译装置了,直接拷贝到咱们的目录下就能够了

 

5/由于tomcat依据Java的环境,所以需求装置jdk,并修正环境变量

[root@mail ~]#cd  /usr/local
[root@mail local]#chmod u+x jdk-6u15-linux-i586.bin
[root@mail local]#./jdk-6u15-linux-i586.bin

装置进程依据提示操作即可完结。装置完结会生成一个jdk1.6.0_25目录

 

下面需求修正环境变量来满意tomcat的运转环境,在文件最终增加,由于jdk装置在/usr/local下,所以才会装备如此,假如方位不同只需修正JAVA_HOME途径即可

    #Vim /etc/profile

export JAVA_HOME="/usr/local/jdk1.6.0_25"

export PATH="$PATH :$JAVA_HOME/bin:$JAVA_HOME/jre/bin:"

export CLASSPATH="$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib"

 

假如正确完结之后是能够用java –version来查看版别的

 

6/由于要让apache和tomcat进行通讯,所以当然要装置一个衔接器,或许叫插件,

[root@mail ~]# cd /usr/local/
[root@mail local]#tar xzvf jakarta-tomcat-connectors-1.2.31-src.tar.gz
[root@mail local]# cd jakarta-tomcat-connectors-1.2.31-src/native

[root@mail native]# ./buildconf.sh

[root@mail native]# with-apxs=/usr/local/apache2/bin/apxs  \

                    with-java-home=/usr/local/jdk1.6.0_25

话不多说,奉上截图



最终查看下模块是否正确的生成

 

 

 

7、到此装置的进程现已悉数完毕,下面就开端进行相应的整合操作!

Tomcat是一个服务于web server等履行servlet/jsp的tomcat实例,所以需求在apache的装备文件下增加相关的装备文件来让apache和tomcat来进行通讯,在这儿需求增加2个文件,一个是mod_jk.conf和workers.properties,

#cd /usr/local/apache2/conf

#vim mod_jk.conf

增加如下内容:

指出mod_jk模块作业所需求的作业文件workers.properties的方位

JkWorkersFile /usr/local/apache2/conf/workers.properties

 

Where to put jk logs

JkLogFile /usr/local/apache2/logs/mod_jk.log

 

Set the jk log level [debug/error/info]

JkLogLevel info

 

Select the log format

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

 

JkOptions indicate to send SSL KEY SIZE,

JkOptions  +ForwardKeySize +ForwardURICompat -ForwardDirectories

 

JkRequestLogFormat set the request format

JkRequestLogFormat "%w %V %T"

 

将一切servlet 和jsp恳求经过ajp13的协议送给Tomcat,让Tomcat来处理

JkMount /servlet/*  worker1

JkMount /*.jsp worker1

JkMount /*.do worker1

这儿阐明一下,比较重要的便是最终两行了,由于这儿是通知apache怎么判别用户的恳求哪些该法往tomcat,这儿我只写了讲servlet和jsp页面的恳求发往tomcat,其他的便是apache本身来处理,这儿有一个匹配准则,apache优先匹配静态资源,一旦静态匹配不成功,再来查看这儿的文件,满意就转发给tomcat

 

 

 

8、然后增加,指定和tomcat通讯的apache进程实例的一些形式,包含协议,端口啊等

Vim workers.properties

# Defining a worker named worker1 and of type ajp13

worker.list=worker1

 

# Set properties for worker1

worker.worker1.type=ajp13 

worker.worker1.host=localhost 

worker.worker1.port=8009

worker.worker1.lbfactor=50 

worker.worker1.cachesize=10 

worker.worker1.cache_timeout=600 

worker.worker1.socket_keepalive=1 

worker.worker1.socket_timeout=300

 

9、最终装备apache服务器装备文件,让apache加载mod_jk.so模块和读取mod_jk.conf文件

#vim httpd.conf

在相应的方位增加上

LoadModule jk_module modules/mod_jk.so
Include /usr/local/apache2/conf/mod_jk.conf

 

这儿还能够修正下服务器称号,这儿便利我就改成本身的IP,监听端口等

 

 

 

还要增加主页对JSP页面的支撑

到此apache悉数装备就根本完毕了,下面咱们来装备tomcat整合要做哪些设置

10、tomcat整合有必要修正主装备文件增加一部分内容即可

#vim  /usr/local/tomcat/conf/server.xml

在<Host></Host>之间增加<Context path=""  docBase="/usr/local/apache/htdocs/"
      debug="0" reloadable="true"  crossContext="true"/>

这儿我用赤色的色彩标记了网页的寄存途径必定要和apache里指向同一个当地

 

到此tomcat其实也就设置完结了,可是这儿给个小提示。Tomcat默许也能够独自作为web服务器的,所以他也有自己监听的端口,默许是8080,装备文件里阐明晰

咱们为了安全考虑能够修正为以下

<Connector port="8009"
               enableLookups="false"

       redirectPort="8443"     

       protocol="AJP/1.3“    />

 

 

11、最终重启apache和tomcat即可完结

Apache的发动:

       #/usr/local/apache/bin/apachectl   start

Tomcat的发动:

       #/usr/local/tomcat/bin/startup.sh    start

 

这儿能看到8080端口是由于我没有将tomcat的默许端口封闭。这样刚好能够看到tomcat是发动了的,并且ajp13也是监听在,这样整合就成功了,下面咱们来进行检测

 

12检测

首要咱们看下默许纯apache是否支撑jsp页面

这儿我用默许的jsp一个简略的页面,成果apache回来给我源代码,阐明apache不支撑jsp页面

 

看整合之后的是否支撑呢

看到是支撑的,可是有人会置疑这是不是tomcat解析出来的,并不是整合的作用,那好,这儿通知各位额,咱们都知道apache有自己独有的报错页面,也便是你拜访过错的网页时分apache回来的页面是能够判别这便是apache在处理相关的信息,相同的tomcat也有独有的报错页面,下面咱们就来看看

这便是apache拜访不到默许页面回来的报错页面

下面这便是拜访不到默许tomcat的页面回来信息,这样才知道是哪个呼应了咱们的恳求,到此,咱们的整合试验算是根本完结了,经过这次我学习到了不少,也看了一些相关朋友的文章,这儿要再次感谢 51CTO上南飞蚂蚁的博文,我引证他的一些博文上的原理内容等,再次感谢

      

 

 

版权声明
本文来源于网络,版权归原作者所有,其内容与观点不代表娱乐之横扫全球立场。转载文章仅为传播更有价值的信息,如采编人员采编有误或者版权原因,请与我们联系,我们核实后立即修改或删除。

猜您喜欢的文章