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的服務開銷
轉自:http://hi.baidu.com/%D0%A1%BA%EC%DD%AB%DC%C4/blog/item/52154ec5a5c02ca08226acf9.html
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/
5、配置。
在/usr/local/apache2/conf/下面建立兩個配置文件mod_jk.conf和workers.properties。
# 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
# 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,作以下修改:
將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>
增加關於加載mod_jk的語句:
LoadModule jk_module modules/mod_jk.so
Include /usr/local/apache2/conf/mod_jk.conf
最后編輯Tomcat的配置文件server.xml,在HOST段中加入:
<Context path="" docBase="/var/wwwroot" debug="0" reloadable="true" crossContext="true"/>
在/var/wwwroot下建立一個index.jsp,啟動Apache和Tomcat,用瀏覽器訪問http://localhost/,應該可以看到正確的頁面了。
三 Windows下Apache與Tomcat的整合
轉自:http://bbs.blueidea.com/thread-2873268-1-1.html
准備工作:
1、 Apache 2.2.4
下載地址:http://cztele1.skycn.com/down/apache_2.2.4-win32-x86-no_ssl.zip
2、 Tomcat 6.0.16
下載地址:http://apache.mirror.phpchina.co ... e-tomcat-6.0.16.zip
3、 JDK
下載地址:http://cds.sun.com/is-bin/INTERS ... -windows-i586-p.exe
如果只是應用的話,也可以選擇安裝JRE,因為JRE比較小:)
4 JK-1.2.26-httpd-2.2.4
下載地址:http://www.apache.org/dist/tomca ... 2.26-httpd-2.2.4.so
注意JK的版本一定要與Apache版本相同。如果你的版本與我的不同,可以去官網下載,有多種版本,適用於各種操作系統,下載適用的既可,地址:http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/
開始安裝:
軟件的安裝順序可以適當調整,但是JDK(JRE)一定要在Tomcat之前安裝:
1、安裝JDK(JRE)
此處默認、自定義安裝均可。安裝完成以后按下面的示例設置你的系統環境變量:我的電腦 -> 屬性 -> 高級 -> 環境變量 (這里要添加的是系統變量,非用戶變量)
JAVA_HOME = D:\Program Files\Java\jdk1.6.0_07
CLASSPATH = .;%Java_Home%\lib\tools.jar;%Java_Home%\lib\dt.jar;
PATH = %Java_Home%\bin;%PATH%
注意JAVA_HOME的路徑改為你的實際安裝路徑。其它兩個不變。
2、安裝Apache
此處注意,如果你本機已經裝了IIS並且占用了80端口,你可以選擇禁用IIS或者給IIS指定其它端口,或者給Apache指定其它端口,根據實際情況進行設置。在Apache的安裝過程中要設置Network Domain和Server Name為Localhost,設置你的Email地址(這個一定要設置,不然Apache啟動不起來)。
安裝完成之后,如果apache用的是80端口,那么在瀏覽器中輸入 http://localhost ,如果使用的是其它端口例如81,則輸入 http://localhost:81 ,將會看到 Apache 的成功頁面。此時Apache已經運行,在系統托盤可以看到它的圖標,雙擊打開可以對Apache服務進行控制,我們下面還要安裝Tomcat和JK,所以現在選擇 Stop 停止 Apache 服務。
3、安裝Tomcat
將Tomcat解壓到 D:\Program Files\Tomcat 下,設置環境變量:
CATALINA_BASE = D:\Program Files\tomcat
CATALINA_HOME = D:\Program Files\tomcat
CLASSPATH = %CATALINA_HOME%\lib\servlet-api.jar
運行 D:\Program Files\Tomcat\bin\startup.bat 啟動Tomcat,出現Tomcat頁面則表示安裝成功。
4、安裝JK
把 mod_jk-1.2.26-httpd-2.2.4.so 拷貝到 D:\Program Files\Apache2.2\modules 下。
下面進行服務器的配置:
1、配置Tomcat
查找Tomcat目錄下的 conf/server.xml文件,在<host></host>中間加入以下語句以修改其默認的目錄:
<Context path="" docBase="E:\wwwroot" reloadable="true" crossContext="true"/>
在這里,如果 path 不為空,則設置的是虛擬目錄,path 的值為虛擬目錄名。
查找Tomcat目錄下的 conf/workers.properties文件,並對比下方文本內容,如有不同處,以下方文本為准進行修改。
workers.tomcat_home=C:\apache-tomcat-6.0.18 #讓mod_jk模塊知道Tomcat的位置
workers.java_home=D:\Program Files\Java\jre1.6.0_07 #讓mod_jk模塊知道jre的位置
ps=\
worker.list=ajp13 #模塊版本
worker.ajp13.port=8009 #工作端口,若沒占用則不用修改
worker.ajp13.host=localhost #本機,若上面的Apache主機不為localhost,作相應修改
worker.ajp13.type=ajp13 #類型
worker.ajp13.lbfactor=1 #代理數,不用修改
如果此文件不存在,則依以上內容創建。對Tomcat的設置進行任何修改后都要重啟才可以生效。
2、配置Apache
打開D:\Program Files\Apache2.2\conf下的httpd.conf,在最后加入下面這段代碼並保存。
LoadModule jk_module modules\mod_jk-1.2.26-httpd-2.2.4.so
#此處mod_jk的文件為你下載的文件
JkWorkersFile "D:\Program Files\Tomcat\conf\workers.properties"
#指定tomcat監聽配置文件地址
JkLogFile "D:\Program Files\Tomcat\logs\mod_jk2.log"
#指定日志存放位置
JkLogLevel info
#設置虛擬主機
<VirtualHost localhost>
#如果非虛擬主機,將<VirtualHost localhost>和最后的</VirtualHost>注釋或者刪除掉即可
ServerAdmin localhost
DocumentRoot E:/wwwroot
<Directory "E:/wwwroot">
#您的站點項目所在路徑,應與tomcat中的目錄設置相同,據說以上兩個必須同時設置才可以生效,沒有試過不同的時候會有什么情況
ServerName localhost
DirectoryIndex index.html index.htm index.jsp
ErrorLog logs/shsc-error_log.txt
CustomLog logs/shsc-access_log.txt common
JkMount /servlet/* ajp13
#讓Apache支持對servlet傳送,用以Tomcat解析
JkMount /*.jsp ajp13
#讓Apache支持對jsp傳送,用以Tomcat解析
JkMount /*.do ajp13
#讓Apache支持對.do傳送,用以Tomcat解析
</VirtualHost>
#開頭的行為注釋,可以刪除。此處的配置我是以設置虛擬目錄,重新指定了serverName,DocumentRoot路徑的方式配置站點,實際上,Apache的配置可以非常靈活,你也可以不采用虛擬目錄的方式,而直接去修改站點的默認配置,使用任意文本編輯工具,搜索如 ServerName,DocumentRoot,ServerAdmin等相關項,然后將該項的配置根據你的實際情況進行修改即可。我建議大家可以多多嘗試不同的配置,這是一種很有樂趣的體驗。
所有的修改完成以后,雙擊系統托盤中的Apache圖標,然后點擊Start啟動Apache服務。
在地址欄中分別輸入http://localhost/,與http://localhost:8080/若結果相同,Apache與Tomcat整合成功
安裝常見問題:
1.一啟動Apache出現“windows不能在本地計算機啟動Apache2”錯誤
多數情況是端口的問題,可能有其他軟件占用了80端口,最好把Apache的端口改成81端口就可以了
2.windows下查看80端口占用情況,適用於查看任何端口
開始–運行–cmd 進入命令提示符 輸入netstat -ano 即可看到所有連接的PID 之后在任務管理器中找到這個PID所對應的程序如果任務管理器中沒有PID這一項,可以在任務管理器中選”查看”-”選擇列”,經常,我們在啟動應用的時候發現系統需要的端口被別的程序占用,如何知道誰占有了我們需要的端口,很多人都比較頭疼,下面就介紹一種非常簡單的方法,希望對大家有用。
我們需要確定誰占用了我們的80端口
在windows命令行窗口下執行:C:\>netstat -aon|findstr “80″
看到了嗎,端口被進程號為2044的進程占用,繼續執行下面命令:
C:\>tasklist|findstr “2044″
avp.exe 2044 Console 0 37,680 K
很清楚吧,avp 卡巴監聽80端口,調整卡巴網絡監聽設置。
當然,如果你的80端口被其他程序占用,kill掉或者調整端口。
四 完!
感謝,Thanks!
作者:iTech
出處:http://itech.cnblogs.com/
本文版權歸作者iTech所有,轉載請包含作者簽名和出處,不得用於商業用途,非則追究法律責任!
contos5下apache和tomcat整合
一、准備軟件:
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
二、軟件安裝:
**************************************************************************
1、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命令來管理了,
並且它在運行環境為2、3、4、5隨系統啟動。
****************************************************************************
2、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是可移植運行庫,主要為上層的應用程序提供一個可以跨越多操作系統
平台使用的底層支持接口庫,以后的配置中會用到它。
****************************************************************************
3、tomcat安裝
我們要在官方下載二進制包,把下下來的二進制包解壓
tar zxvf apache-tomcat.tar.gz
mv apache-tomcat.tar.gz /usr/local/tomcat
這樣就算完成了。
*****************************************************************************
4、安裝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就已經轉好了。
******************************************************************************
5、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
大功搞成,呵呵
************************************************************************************
6、安裝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
安裝結束
************************************************************************************
三、整合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是您的用戶,輸入兩次你要設置的密碼。
這樣就算是整合完畢了。
四、建立實例站點
我們配置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/7882550