apache支持靜態頁,tomcat支持動態的,好比servlet等。php
通常使用apache+tomcat的話,apache只是做爲一個轉發,對jsp的處理是由tomcat來處理的。html
apache能夠支持PHP\cgi\perl,可是要使用Java的話,你須要tomcat在apache後臺支撐,將java請求由apache轉發給tomcat處理。java
apache是web服務器,Tomcat是應用(java)服務器,它只是一個servlet(jsp也翻譯成servlet)容器,能夠認爲是apache的擴展,可是能夠獨立於apache運行。linux
這兩個有如下幾點能夠比較的:
一、二者都是apache組織開發的
二、二者都有HTTP服務的功能
三、二者都是免費的
不一樣點:
Apache是專門用了提供HTTP服務的,以及相關配置的(例如虛擬主機、URL轉發等等)
Tomcat是Apache組織在符合J2EE的JSP、Servlet標準下開發的一個JSP服務器web
整合的好處是:
若是客戶端請求的是靜態頁面,則只須要Apache服務器響應請求
若是客戶端請求動態頁面,則是Tomcat服務器響應請求
由於jsp是服務器端解釋代碼的,這樣整合就能夠減小Tomcat的服務開銷apache
感謝,Thanks!
做者:iTech
出處:http://itech.cnblogs.com/
本文版權歸做者iTech全部,轉載請包含做者簽名和出處,不得用於商業用途,非則追究法律責任!windows
contos5下apache和tomcat整合api
1、準備軟件:
apache2.2.10下載地址:http://httpd.apache.org/download.cgi
tomcat6.0下載地址:http://tomcat.apache.org/download-60.cgi
jdk1.5.0下載地址:http://java.sun.com/javase/downloads/previous.jsp
jk1.2.7下載地址:http://tomcat.apache.org/download-connectors.cgi
2、軟件安裝:
**************************************************************************
一、apache安裝
把下載下來的包放在 /usr/local/src 下,使用 tar zxvf httpd-NN.tar.gz解壓,
cd httpd-NN
./configure --prefix=/usr/local/httpd
make
make install
如今你發如今/usr/local下面多出了一個httpd的目錄
咱們能夠利用 /usr/local/httpd/bin/apachectl -k start|stop|restart 來管理httpd服務。
若是要隨系統啓動,咱們必須在 /etc/rc.d/init.d/rc.local文件的末尾加上一行:
/usr/local/httpd/bin/apachectl -k start
即便是這樣,可是咱們仍是不方便管理httpd服務,咱們能不能,像rpm安裝那樣使用service服務來管理httpd服務呢?
答案是確定的咱們必須以下操做:
在 /etc/rc.d/init.d/下創建一個 httpd的文件,利用 chmod 755 httpd 使其具備執行能力。
vi httpd 添加以下內容:
#!/bin/bash
# Startup script for the Apache Web Server
# chkconfig: 345 85 15
# description: Apache is a World Wide Web server.
# Source function library.
. /etc/rc.d/init.d/functions
if [ -f /etc/sysconfig/httpd ]; then
. /etc/sysconfig/httpd
fi
INITLOG_ARGS=""
apachectl=/usr/local/apache2/bin/apachectl
httpd=${HTTPD-/usr/local/apache2/bin/httpd}
prog=httpd
RETVAL=0
start() {
echo -n $"Starting $prog: "
daemon $httpd $OPTIONS
RETVAL=$?
echo
[ $RETVAL = 0 ] && touch /var/lock/subsys/httpd
return $RETVAL
}
stop() {
echo -n $"Stopping $prog: "
killproc $httpd
RETVAL=$?
echo
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/httpd /var/run/httpd.pid
}
reload() {
echo -n $"Reloading $prog: "
killproc $httpd -HUP
RETVAL=$?
echo
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status $httpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/run/httpd.pid ] ; then
stop
start
fi
;;
reload)
reload
;;
graceful|help|configtest|fullstatus)
$apachectl $@
RETVAL=$?
;;
*)
echo $"Usage: $prog
{start|stop|restart|condrestart|reload|status|fullstatus|graceful|help|configtest}"
exit 1
esac
exit $RETVAL
使用chkconfig -add httpd
chkconfig --level 2345 httpd on
這樣httpd就能夠利用 service httpd start|stop|restart命令來管理了,
而且它在運行環境爲二、三、四、5隨系統啓動。
****************************************************************************
二、apr和apr-util安裝
cd /usr/local/httpd/srclib/apr
./configure --prefix=/usr/local/apr-httpd/
make
make install
cd ../apr-util
./configure --prefix=/usr/local/apr-util-httpd/ --with-apr=/usr/local/apr-httpd/
make
make install
apr是可移植運行庫,主要爲上層的應用程序提供一個能夠跨越多操做系統
平臺使用的底層支持接口庫,之後的配置中會用到它。
****************************************************************************
三、tomcat安裝
咱們要在官方下載二進制包,把下下來的二進制包解壓
tar zxvf apache-tomcat.tar.gz
mv apache-tomcat.tar.gz /usr/local/tomcat
這樣就算完成了。
*****************************************************************************
四、安裝jdk
把下下來的jdk-1.5.0.linux.bin的文件,在當前文件夾輸入 ./jdk-1.5.0.linux-bin
接下來會出現是否遵照協議的選項,你直接輸入y就能夠了,把解壓出來的目錄放到/usr/local下面
mv jdk-1.5.0.linux.bin /usr/local/jdk
這樣java就已經轉好了。
******************************************************************************
五、tomcat和java的鏈接
首先咱們添加環境變量
vi /etc/profile
export JAVA_HOME=/usr/local/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=$CLASSPATH:$CATALINA_HOME/lib
使環境變量生效 source /etc/profile
Tomcat6.0開機啓動腳本設置
安裝jsvc
cd /usr/local/tomcat6/bin
tar xvfz jsvc.tar.gz
cd jsvc-src
sh support/buildconf.sh
若是成功,命令終端打印出下面report:
support/buildconf.sh: configure script generated successfully
chmod 755 configure
./configure --with-java=/usr/local/jdk
make
cp /usr/local/tomcat6/bin/jsvc-src/native/Tomcat5.sh /etc/init.d/tomcat
到此,咱們在/etc/init.d/下找到tomcat
vi /etc/init.d/tomcat
修改裏面環境了變量的值:
JAVA_HOME=jdk安裝目錄
CATALINA_HOME=tomcat安裝目錄
DAEMON_HOME=tomcat安裝目錄/bin
TOMCAT_USER=root
在文件的最開始添加如下語句
#!/bin/bash
# Startup script for the tomcat Web Server
# chkconfig: 2345 85 15
# description: tomcat
# Source function library.
. /etc/rc.d/init.d/functions
使用如下命令使tomcat文件有執行權限和隨系統啓動
chmod 755 tomcat
chkconfig -add tomcat
默認狀況下按照好了Tomcat6,啓動時會在 /usr/local/apache-tomcat6.0/logs/stdout.log 裏出現下面的日誌:
INFO: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: /usr/local/diablo-jdk1.5.0/jre/lib/i386/client:/usr/local/diablo-jdk1.5.0/jre/lib/i386:/usr/local/diablo-jdk1.5.0/jre/../lib/i386:/usr/lib:/usr/local/lib
下面就來安裝 tomcat-native
cd /usr/local/tomcat/bin
tar zxvf tomcat-native.tar.gz
cd ./tomcat-native-1.1.10-src/jni/native/
./configure –with-apr=/usr/local/apr-httpd
make
make install
安裝後多出一個目錄 /usr/local/apr
而後安裝上面的提示操做一下就行了,我這裏用的 link 的方式:
ln -s /usr/local/apr/lib/libtcnative-1.so /usr/local/jdk/jre/lib/i386/libtcnative-1.so
再重啓 tomcat,
serice tomcat6 restart
大功搞成,呵呵
************************************************************************************
六、安裝jk
先解壓jk,tar zxvf jk.xxx.tar.gz
cd native
./buildconf.sh
chmod 755 configure
./configure --with-apxs=/usr/local/httpd/bin/apxs
make
make install
安裝結束
************************************************************************************
3、整合apache和tomcat
首先編輯apache的conf文件
vi /usr/local/httpd/conf/httpd.conf
在文件末尾添加以下行:
LoadModule jk_module modules/mod_jk.so
JkWorkersFile conf/workers.properties
JkLogFile logs/mod_jk.log
JkShmFile logs/jk-runtime-status
JkLogLevel info
JkMountfile conf/uriworkermap.properties
JkMountCopy All
# 下面這個是jkstatus的加密處理
<Location /jkstatus>
JkMount jkstatus
Order deny,allow
AuthType Basic
AuthName "jkstatus"
AuthUserFile conf/jkpasswd
require valid-user
</Location>
再在conf文件夾下添加一個wokers.properties文件
cd /usr/local/httpd/conf
touch workers.properties
vi workers.properties
添加如下語句:
worker.list=local,jkstatus
worker.local.type=ajp13
worker.local.host=localhost
worker.local.port=8009
worker.jkstatus.type=status
下面是對jkstatus監控頁面配置用戶和密碼
/usr/local/httpd/bin/htpasswd -c /usr/local/httpd/conf/jkpasswd meijun1234
passwd:
reinput passwd:
meijun1234是您的用戶,輸入兩次你要設置的密碼。
這樣就算是整合完畢了。
4、創建實例站點
咱們配置tomcat是爲了作虛擬機,爲了和主的配置文件分離,咱們在httpd.conf主配置添加一行
Include conf.d/virtualhost.conf
作這個前,您必須首先在httpd目錄下創建目錄和文件:conf.d/virtualhost.conf
咱們編輯這個文件
vi ./conf.d/virtualhost.conf
加入下列內容:
NameVirtualHost *:80
<Directory /var/www/html>
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
<Directory /var/www/jsp>
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>
<VirtualHost *:80>
DocumentRoot /usr/local/apache2/htdocs
ServerName localhost
ErrorLog logs/default/error.log
TransferLog logs/default/transfer.log
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/html
ServerName html.jsp.com
ServerAlias test.jsp.com
ErrorLog logs/html/error.log
TransferLog logs/html/transfer.log
</VirtualHost>
<VirtualHost *:80>
DocumentRoot /var/www/jsp
ServerName www.jsp.com
</VirtualHost>
再編輯:/usr/local/tomcat/conf/server.xml
在<Service>和<Engine>內從新添加一個<Host>
以下:
<Host name="www.jsp.com" appBase=""
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<Context path="" docBase="/var/www/jsp" />
</Host>
重啓httpd和tomcat
在你在瀏覽器訪問的時候必須在hosts文件裏把www.jsp.com指向您的服務器,否着它會找不到服務器,還要在/var/www/裏面創建
jsp文件夾,在jsp文件夾裏放入一個測試用的jsp程序
您一切工做都作好了,在地址欄輸入http://www.jsp.com可以看到您的測試頁面,在http://www.jsp.com/jkstatus,能看到你jk鏈接器的情況,這個jk鏈接器的web管理頁面是mod_jk.so自帶的一個功能。瀏覽器
文章來自:http://blog.csdn.net/yumengkk/article/details/7882550tomcat