linux下apache和tomcat整合

一 Apache與Tomcat比較聯繫

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

二 Linux下Apache與Tomcat整合的簡單方法
轉自:http://hi.baidu.com/%D0%A1%BA%EC%DD%AB%DC%C4/blog/item/52154ec5a5c02ca08226acf9.html

一、準備,下載須要的文件。這裏假定你已經正確安裝配置好了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爲二進制包。

二、安裝Apache。
# tar xzvf httpd-2.2.0.tar.gz
# cd httpd-2.2.0
# ./configure --prefix=/usr/local/apache2 --enable-so
# make
# make install

三、安裝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

四、編譯生成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/

五、配置。
在/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

準備工做:
一、 Apache 2.2.4
下載地址:http://cztele1.skycn.com/down/apache_2.2.4-win32-x86-no_ssl.zip

二、 Tomcat 6.0.16
下載地址:http://apache.mirror.phpchina.co ... e-tomcat-6.0.16.zip

三、 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以前安裝:

一、安裝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的路徑改成你的實際安裝路徑。其它兩個不變。

二、安裝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 服務。

三、安裝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頁面則表示安裝成功。

四、安裝JK
把 mod_jk-1.2.26-httpd-2.2.4.so 拷貝到 D:\Program Files\Apache2.2\modules 下。

下面進行服務器的配置:
一、配置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的設置進行任何修改後都要重啓才能夠生效。

二、配置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全部,轉載請包含做者簽名和出處,不得用於商業用途,非則追究法律責任!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

相關文章
相關標籤/搜索