win7下Apache2.2+Tomcat7.0整合配置詳解
一、簡(jiǎn)單介紹 Apache、Tomcat
Apache HTTP Server(簡(jiǎn)稱 Apache),是 Apache 軟件基金協(xié)會(huì)的一個(gè)開放源碼的網(wǎng)頁(yè)服務(wù)器,可以在 Windows、Unix、Linux 等操作系統(tǒng)中運(yùn)行是最流行的Web服務(wù)器軟件之一。Apache 反應(yīng)速度快,運(yùn)行效率高,但只支持HTML等靜態(tài)頁(yè)面(加載插件后也可支持 PHP 頁(yè)面)。
Apache Tomcat 是由 Apache 軟件基金協(xié)會(huì)與 Sun 公司聯(lián)合開發(fā)的一款Web服務(wù)器,它除了支持HTML等靜態(tài)頁(yè)面外,還支持JSP、Servlet 。
在相同的運(yùn)行環(huán)境下,Tomcat 對(duì)靜態(tài)頁(yè)面的反應(yīng)速度沒有 Apache 靈敏,整合 Apache 與 Tomcat 能使系統(tǒng)運(yùn)行于一個(gè)良好環(huán)境下,提高系統(tǒng)效率。
二、軟件包下載
運(yùn)行環(huán)境:Windows 7
Apache 2.2 下載:http://httpd.apache.org/download.cgi
Tomcat 7.0 下載:http://tomcat.apache.org/download-70.cgi
JDK 6 下載:http://www.oracle.com/technetwork/java/javase/downloads/index.html
mod_jk.mo 連接包下載:http://apache.etoak.com//tomcat/tomcat-connectors/jk/binaries/windows/
三、JDK 安裝
JDK (Java Development Kit) 是 Sun 針對(duì)Java開發(fā)員的產(chǎn)品,是現(xiàn)今使用最廣泛的Java SDK。JDK 是整個(gè)Java的核心,包括了Java運(yùn)行環(huán)境和基礎(chǔ)類庫(kù)等。常用版本包括 JDK 6、JDK 7、JDK 8。
成功安裝 JDK 6 后,必須設(shè)置環(huán)境變量,讓系統(tǒng)感知并能調(diào)用 JDK 6。
打開 “控制面板 --> 系統(tǒng)安全 --> 系統(tǒng) --> 高級(jí)系統(tǒng)設(shè)置 --> 環(huán)境變量”,增加以下配置 :
變量 | 值 | 說明 |
java_home | C:\ jdk1.6.0_30 | 寫入JDK安裝的路徑 |
Path | ;%java_home%\bin | 在Path原有值上加入此值 |
classpath | ;%java_home%\lib\dt.jar;%java_home%\lib\tools.jar | 在classpath的原有值上加入此值 |
四、Apache 2.2 安裝
運(yùn)行 Apache 2.2 安裝包, 在安裝過程可以設(shè)置域名、服務(wù)器名稱和端口,Apache的默認(rèn)端口為80。
具體的安裝步驟可以參考這篇文章:http://www.dbjr.com.cn/article/52086.htm
httpd.conf 是Apache的主要配置文件,在Apache 安裝完成后,可嘗試打開 “/Apache 2.2/conf/httpd.conf ” 文件進(jìn)行修改,下面是 Apache 的常用配置:
ServerRoot "C:/Program Files/Apache Software Foundation/Apache2.2" # 定義配置文件、日志文件等的根目錄,通常為Apache2.2安裝的要目錄 <IfModule mpm_winnt.c> ThreadsPerChild 250 MaxRequestsPerChild 0 </IfModule> # <IfModule prefork.c> # ....... # </IfModule> # <IfModule worker.c> # ....... # </IfModule> # Apache 支持MPM多路處理模塊,MPM是一種多進(jìn)程與多線程相混合的模式 # Apache 為 Unix、OS/2、BeOS 系統(tǒng)定義了 perwork、worker、beos 等多種模式 # 但在Windows下只支持winnt模式 # ThreadPerChild 定義常用線程數(shù)、MaxRequestsPerChild 定義最多線程數(shù) Listen 8000 # 設(shè)置 Apache 的監(jiān)聽路徑,一般默認(rèn)為127.0.0.1:80端口,但由于80經(jīng)常被IIS等進(jìn)程所占用, # 建設(shè)改用另一個(gè)端口,此處使用8000端口 LoadModule actions_module modules/mod_actions.so LoadModule alias_module modules/mod_alias.so LoadModule asis_module modules/mod_asis.so LoadModule auth_basic_module modules/mod_auth_basic.so # LoadModule auth_digest_module modules/mod_auth_digest.so .......... .......... # 設(shè)置模塊處理 <IfModule !mpm_netware_module> <IfModule !mpm_winnt_module> User daemon Group daemon </IfModule> </IfModule> # 如果你想使httpd以另外的用戶或組來運(yùn)行,你必須在開始時(shí)以root方式啟動(dòng) # 然后再將它切換為你想要使用的用戶或組。 ServerAdmin leslies2@163.com # 定義管理員郵箱,當(dāng)Apache出錯(cuò)時(shí)將把錯(cuò)誤信息發(fā)到此地址 ServerName 127.0.0.1 # 如果你的主機(jī)沒有注冊(cè)DNS名,在這里鍵入它的IP地址 DocumentRoot "E:/Apache Webs" # 定義發(fā)布文件的根目錄 <Directory /> Order deny,allow Deny from all </Directory> # 為特定的目錄配置一組默認(rèn)指令,禁止訪問根目錄的文件 <Directory “E:/Apache Webs/WebSite1”/> Order deny,allow </Directory> # 允許客戶訪問WebSite1下的目錄 ErrorLog "logs/error.log" # ErrorLog:錯(cuò)誤日志文件定位。 LogLevel warn # LogLevel:控制記錄在錯(cuò)誤日志文件中的日志信息數(shù)量。 # 包括:debug,info,notice,warn,error,crit,alert,emerg。 <IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> CustomLog "logs/access.log" common </IfModule> # 日志訪問格式設(shè)置 <IfModule alias_module> ScriptAlias /cgi-bin/ "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin/" </IfModule> # 設(shè)定默認(rèn)CGI腳本目錄及別名 <Directory "C:/Program Files/Apache Software Foundation/Apache2.2/cgi-bin"> AllowOverride None Options None Order allow,deny Allow from all </Directory> # 設(shè)定默認(rèn)CGI腳本目錄的屬性 DefaultType text/plain # 設(shè)定默認(rèn)MIME內(nèi)容類型 <IfModule mime_module> TypesConfig conf/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz </IfModule> # 指定MIME類型映射文件 <IfModule ssl_module> SSLRandomSeed startup builtin SSLRandomSeed connect builtin </IfModule> # SSL默認(rèn)配置
完成配置后,啟動(dòng)Apache 2.2,在 "E:\\Apache Webs\WebSite1" 添加靜態(tài)頁(yè)面 index.html。
最后打開 http://localhost:8000/index.html,測(cè)試 Apache 2.2 能否正常運(yùn)行。
五、Tomcat 7 安裝
運(yùn)行 Tomcat 7 安裝包,完成安裝后,打開 “控制面板 --> 系統(tǒng)安全 --> 系統(tǒng) --> 高級(jí)系統(tǒng)設(shè)置 --> 環(huán)境變量”,增加以下配置 :
變量 | 值 |
tomcat_home | C:\Program Files\Apache Software Foundation\Tomcat 7.0 |
Path | ;%tomcat_home%\lib;%tomcat_home%\lib\servlet-api.jar;%tomcat_home%\lib\jsp-api.jar |
在 Tomcat 的目錄下,conf 文件夾中包含 Tomcat 的核心配置,logs 文件夾包含 Tomcat 的日志記錄 , webapps 文件夾是 Tomcat 的默認(rèn)網(wǎng)站存放目錄。
在conf 文件夾的 server.xml 是 Tomcat 最為重要的配置,下面是 server.xml 的常用設(shè)置:
<?xml version='1.0' encoding='utf-8'?> <!-- Server 屬性說明 port:指定一個(gè)端口,這個(gè)端口負(fù)責(zé)監(jiān)聽關(guān)閉Tomcat的請(qǐng)求 shutdown:向以上端口發(fā)送的關(guān)閉服務(wù)器的命令字符串 --> <Server port="8006" shutdown="SHUTDOWN"> <!--定義多個(gè)監(jiān)聽--> <Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" /> <Listener className="org.apache.catalina.core.JasperListener" /> <Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <!--定義共用資源--> <GlobalNamingResources> <Resource name="UserDatabase" auth="Container" type="org.apache.catalina.UserDatabase" description="User database that can be updated and saved" factory="org.apache.catalina.users.MemoryUserDatabaseFactory" pathname="conf/tomcat-users.xml" /> </GlobalNamingResources> <!--<Service>元素由org.apache.catalina.Service接口定義,它包含一個(gè)<Engine>元素, 以及一個(gè)或多個(gè)<Connector>,這些Connector元素共享用同一個(gè)Engine元素--> <Service name="Catalina"> <!--<Connector>元素代表與客戶程序交換信息,它可以接收客戶的請(qǐng)求,并向客戶返回響應(yīng)結(jié)果--> <!--定義HTTP協(xié)議的處理方式,處理接口默認(rèn)為8080 由于此接口經(jīng)常被其他應(yīng)用程序調(diào)用,建議修改接口--> <Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <!--定義AJP/1.3協(xié)議的處理方式,此為整合 Tomcat+Apache 的核心協(xié)議,請(qǐng)慎重處理 --> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> <!--每個(gè)<Service>元素只能包括一個(gè)<Engine>元素. <Engine>元素處理在同一個(gè)<Service>中所有<Connector>元素接收到的客戶請(qǐng)求--> <Engine name="Catalina" defaultHost="localhost"> <!-- Realm是一個(gè)存儲(chǔ)用戶名,密碼以及和用戶名相聯(lián)系的角色的”數(shù)據(jù)庫(kù)” 用戶名,密碼可以用來驗(yàn)證用戶對(duì)一個(gè)或多個(gè)web應(yīng)用程序的有效性。--> <Realm className="org.apache.catalina.realm.LockOutRealm"> <Realm className="org.apache.catalina.realm.UserDatabaseRealm" resourceName="UserDatabase"/> </Realm> <!--<Host>元素定義了一個(gè)虛擬主機(jī),它可以包含一個(gè)或多個(gè)Web應(yīng)用--> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" prefix="localhost_access_log." suffix=".txt" pattern="%h %l %u %t "%r" %s %b" /> </Host> </Engine> </Service> </Server>
Tomcat 默認(rèn)使用8080端口處理HTTP請(qǐng)求(因?yàn)榇硕丝诮?jīng)常被其他應(yīng)用程序調(diào)用,建議修改)。
完成設(shè)置后,輸入地址localhost:8080 就可看到 Tomcat 的管理頁(yè)面。
可以在 webapps 目錄下新建 index.jsp 頁(yè)面,啟動(dòng) Tomcat ,測(cè)試 Tomcat 能否正常運(yùn)行。
六、整合 Apache+Tomcat
在 Apache、Tomcat 都能正常運(yùn)行的情況下,把 mod_jk.mo 拷貝到 "/Apache2.2/modules"
在 “/Tomcat 7.0/conf ” 文件夾下增加 workers.properties 文件,輸入以下內(nèi)容。
workers.tomcat_home=C:\Program Files\Apache Software Foundation\Tomcat 7.0 #讓 mod_jk 模塊感知 Tomcat workers.java_home=C:\Program Files\Java\jdk1.6.0_30\jre #讓 mod_jk 模塊感知 jre ps=\ #指定文件路徑分割符 worker.list=config1 worker.config1.port=8009 #工作端口,此端口應(yīng)該與server.xml中Connector元素的 AJP/1.3 協(xié)議所使用的端口相匹配 worker.config1.host=localhost #Tomcat服務(wù)器的地址 worker.config1.type=ajp13 #類型 worker.config1.lbfactor=1 #負(fù)載平衡因數(shù)
注意:
worker.list=config1中,conifg1為自定義名稱,但此名稱必須與下文所述的 “/Apache 2.2/conf/httpd.conf ” 文件中 ,JkMount 指令對(duì)應(yīng)的名稱相匹配。
加入workers.properties 文件后,可修改 “/Apache 2.2/conf/httpd.conf ” 文件,加入以下配置。
注意 JkMount 指令中的變量必須與worker.list 所配置的名稱相同。
# 設(shè)置虛擬主機(jī),定義端口為8000 <VirtualHost 127.0.0.1:8000> ServerName 127.0.0.1 #定義服務(wù)名稱 DocumentRoot "C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps" #定義站點(diǎn)項(xiàng)目所在路徑,把路徑指向 tomcat 中的默認(rèn)網(wǎng)站目錄 DirectoryIndex index.html index.htm index.jsp ErrorLog logs/shsc-error_log.txt CustomLog logs/shsc-access_log.txt common #例子1,讓 Apache 支持對(duì)webapps/sun.shop/blog 中頁(yè)面?zhèn)魉? JkMount /sun.shop/blog/* config1 #例子2,向Apache請(qǐng)求此文件夾內(nèi)頁(yè)面時(shí),系統(tǒng)將轉(zhuǎn)向用Tomcat解析 JkMount /*.jsp config1 #例子3,向 Apache 請(qǐng)求jsp頁(yè)面時(shí),用 Tomcat 進(jìn)行解析 JkMount /*.do config1 #例子4,向 Apache 請(qǐng)求.do 動(dòng)作時(shí), 用 Tomcat 進(jìn)行解析 JkMount /*.action config1 #例子5,向 Apache 請(qǐng)求 .action 動(dòng)作時(shí), 用 Tomcat 進(jìn)行解析 </VirtualHost> # 允許客戶端訪問此路徑 <Directory "C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> LoadModule jk_module modules/mod_jk.so # 此處 mod_jk.so 文件為你下載的文件 JkWorkersFile "C:/Program Files/Apache Software Foundation/Tomcat 7.0/conf/workers.properties" # 指定tomcat監(jiān)聽配置文件地址 JkLogFile "C:/Program Files/Apache Software Foundation/Tomcat 7.0/logs/mod_jk2.log" # 指定日志存放位置 JkLogLevel info
注意:
JkMount /*.jsp config1 指令代表當(dāng)客戶端向 Apache 發(fā)送 *.jsp 頁(yè)面請(qǐng)求時(shí),把處理指向 Tomcat。當(dāng)使用 Struts時(shí)建議使用 *.action、*.do等后綴命名動(dòng)作,否則若使用無后綴命名時(shí),加入 JkMount /* config1命令,Apache 則會(huì)把包括 *.html等靜態(tài)頁(yè)面所有請(qǐng)求,都轉(zhuǎn)向 Tomcat。
完成以上配置后,重啟 Apache、Tomcat。此時(shí) Apache、Tomcat 的默認(rèn)目錄為 “C:/Program Files/Apache Software Foundation/Tomcat 7.0/webapps ”,對(duì)HTTP請(qǐng)求,Apache 使用8000端口,Tomcat 使用 8081 端口。在默認(rèn)目錄下加入index.jsp 頁(yè)面后,直接向 Apache 發(fā)送 http://localhost:8000/index.jsp 頁(yè)面請(qǐng)求,可見 Apache 會(huì)把請(qǐng)求轉(zhuǎn)向 Tomcat 進(jìn)行處理。
對(duì)JAVA開發(fā)有興趣的朋友歡迎加入QQ群:174850571 共同探討 !
相關(guān)文章
windows使用nginx實(shí)現(xiàn)網(wǎng)站負(fù)載均衡測(cè)試實(shí)例
如果你關(guān)注過nginx,必定知道nginx這個(gè)軟件有什么用的,如果你的網(wǎng)站訪問量越來越高,一臺(tái)服務(wù)器已經(jīng)沒有辦法承受流量壓力,那就增多幾臺(tái)服務(wù)器來做負(fù)載吧。2010-03-03windows?server2012上配置IIS全過程(附詳細(xì)步驟)
Windows系列的操作系統(tǒng)都不會(huì)自動(dòng)安裝IIS,下面這篇文章主要給大家介紹了關(guān)于windows?server2012上配置IIS的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-03-03Windows Server 2019 如何配置基于本地的組策略
這篇文章主要介紹了如何配置基于本地的組策略,基于本地的組策略只作用于本計(jì)算機(jī)及其上的用戶,對(duì)其他計(jì)算機(jī)和用戶不生效,通過5個(gè)子任務(wù)實(shí)例來驗(yàn)證本地組策略設(shè)置對(duì)本地工作環(huán)境的影響2023-05-05Win2003下配置iis+php+mysql+zend圖文 使其支持asp,.net,cgi,perl和php
Windows 2003 下IIS 服務(wù)器配置, 使其完全支持asp,.net,cgi,perl和php+mysql+Zend。所需軟件: ActivePerl、PHP、MYSQL、Zend2012-01-01Winxp IIS5.1出現(xiàn)HTTP500內(nèi)部服務(wù)器錯(cuò)誤的解決方法
Winxp IIS5.1出現(xiàn)HTTP500內(nèi)部服務(wù)器錯(cuò)誤的解決方法,需要的朋友可以參考下。2011-03-03windows server 2008 阻止惡意插件程序下載安裝到系統(tǒng)中
這篇文章主要介紹了windows server 2008 阻止惡意插件程序下載安裝到系統(tǒng)中,需要的朋友可以參考下2017-04-04IIS中查看W3P.exe進(jìn)程對(duì)應(yīng)的應(yīng)用程序池的方法
在進(jìn)程中發(fā)現(xiàn)個(gè)別的w3p.exe進(jìn)程占用資源較高,這個(gè)進(jìn)程每一個(gè)代表一個(gè)應(yīng)用程序池,我們就知道哪些網(wǎng)站可能導(dǎo)致了這個(gè)原因。2011-03-03Apache2+SVN+MYSQL認(rèn)證 配置項(xiàng)詳細(xì)步驟
Apache2+SVN+MYSQL認(rèn)證 配置項(xiàng)詳細(xì)步驟(C)版權(quán)申明,本博客所有內(nèi)容可任意轉(zhuǎn)載,但需注明如下版權(quán)信息: (C)版權(quán)所有:一正清和(yizhengqinghe#$#hotmail.com)2009-02-02