您的位置:首页 > 运维架构 > Tomcat

linux下 apache和tomcat整合(及服务随机启动)

2014-09-26 10:20 393 查看
一、 Apache与Tomcat比较联系

apache支持静态页,tomcat支持动态的,比如servlet等。

一般使用apache+tomcat的话,apache只是作为一个转发,对jsp的处理是由tomcat来处理的。

apache可以支持php\cgi\perl,但是要使用java的话,你需要tomcat在apache后台支撑,将java请求由apache转发给tomcat处理。

apache是web服务器,Tomcat是应用(java)服务器,它只是一个servlet(jsp也翻译成servlet)容器,可以认为是apache的扩展,但是可以独立于apache运行。

这两个有以下几点可以比较的:

1、两者都是apache组织开发的

2、两者都有HTTP服务的功能

3、两者都是免费的

不同点:

Apache是专门用了提供HTTP服务的,以及相关配置的(例如虚拟主机、URL转发等等)

Tomcat是Apache组织在符合J2EE的JSP、Servlet标准下开发的一个JSP服务器

整合的好处是:

如果客户端请求的是静态页面,则只需要Apache服务器响应请求

如果客户端请求动态页面,则是Tomcat服务器响应请求

因为jsp是服务器端解释代码的,这样整合就可以减少Tomcat的服务开销

二、Linux下Apache与Tomcat整合的简单方法

1、准备,下载需要的文件。这里假定你已经正确安装配置好了JDK。

到Apache官方网站下载所需要的文件:

httpd-2.2.0.tar.gz

apache-tomcat-5.5.12.tar.gz

jakarta-tomcat-connectors-1.2.15-src.tar.gz

其中httpd和jakarta-tomcat-connectors为源码包,apache-tomcat为二进制包。

2、安装Apache。

# tar xzvf httpd-2.2.0.tar.gz
# cd httpd-2.2.0
# ./configure --prefix=/usr/local/apache2 --enable-so
# make
# make install


3、安装Tomcat。

# cp apache-tomcat-5.5.12.tar.gz /usr/local/
# cd /usr/local
# tar xzvf apache-tomcat-5.5.12.tar.gz
# ln -s apache-tomcat-5.5.12 tomcat


4、编译生成mod_jk。

# tar xzvf jakarta-tomcat-connectors-1.2.15-src.tar.gz
# cd jakarta-tomcat-connectors-1.2.15-src/jk/native
# ./configure --with-apxs=/usr/local/apache2/bin/apxs
# make
# cp ./apache-2.0/mod_jk.so /usr/local/apache2/modules/


三、Linux下Apache与Tomcat的配置。

在/usr/local/apache2/conf/下面建立两个配置文件mod_jk.conf和workers.properties。

mod_jk.conf添加以下内容:

# vi 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


workers.properties 添加以下内容:

# vi 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


再配置httpd.conf,作以下修改:
# vi /usr/local/apache2/conf/httpd.conf
将Listen 80 修改为 Listen 127.0.0.1:80
将ServerName 修改为 ServerName LocalHost:80
在DirectoryIndex中添加 index.jsp
我的网页放在/var/wwwroot下,所以要修改DocumentRoot


DocumentRoot "/var/wwwroot"

<Directory "/var/wwwroot">

Options Includes FollowSymLinks

AllowOverride None

Order deny,allow

Allow from all

XBitHack on

</Directory>

<Directory "/var/wwwroot/WEB-INF">

Order deny,allow

Deny from all

</Directory>

最后编辑Tomcat的配置文件server.xml,在<HOST name="localhost"> 增加的位置 </HOST>段中加入:
# vi /usr/local/tomcat/conf/server.xml
<Context path="" docBase="/var/wwwroot" debug="0" reloadable="true" crossContext="true"/>


在/var/wwwroot下建立一个index.jsp,启动Apache和Tomcat,用浏览器访问http://localhost/,应该可以看到正确的页面了。
# mkdir /var/wwwroot
# vi index.jsp
# vi index.html


四、httpd服务随机启动

有两种方法可以让Apache在系统启动时自动启动。

1. 在/etc/rc.d/rc.local中增加启动apache的命令,例如:/usr/local/httpd/bin/apachectl start

2. 将apache注册为系统服务(推荐使用)

首先将apachectl命令拷贝至/etc/rc.d/init.d目录下,改名为httpd

#cp /usr/local/apache2/bin/apachectl.sh /etc/init.d/httpd


使用编辑器打开httpd文件,并在第一行#!/bin/sh下增加两行文字如下(这是必需的,否则会报httpd不支持chkconfig

其中所增加的第二行中三个数字第一个表示在运行级别3和5下启动apache,第二、三是关于启动和停止的优先级配置,无关紧要。

# vi /etc/rc.d/init.d/httpd

# chkconfig: 35 70 30
# description: Apache


接着注册该服务

# chkconfig --add httpd


一切OK了,启动服务

# service httpd start

五、tomcat服务随机启动

我的Tomcat安装位置:/usr/local/tomcat

Java安装位置:/usr/local/src/jdk1.7.0_67

1) 编辑/etc/profile,在文件末尾添加jdk路径,java javac命令即可用

#vi /etc/profile
export JAVA_HOME=/usr/local/src/jdk1.7.0_67
export JRE_HOME=/usr/local/src/jdk1.7.0_67/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$ClASSPATH
export PATH=$JAVA_HOME/bin:$PATH
2) 重新载入生效profile配置文件

#source /etc/profile
3) 到tomcat子目录bin目录下找到catalina.sh 文件。复制文件到/etc/init.d 并改名为tomcat

#cp /usr/local/tomcat/bin/catalina.sh /etc/init.d/tomcat
4) 编辑/etc/init.d/tomcat文件.在文件中添加如下

注意:这个地方必须加 chkconfig: 2345 10 90 等内容(决定chkconfig --list 的结果),否则出现错误:tomcat 服务不支持 chkconfig

#vi /etc/init.d/tomcat

#!/bin/sh
# chkconfig: 2345 10 90
# description:Tomcat service
CATALINA_HOME=/usr/local/tomcat
5) 添加tomcat 服务,将服务添加到自动启动列表服务中

#chkconfig --add tomcat
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: