Tomcat簡介及做用:php
Tomcat 技術先進、性能穩定,並且免費,於是深受Java 愛好者的喜好並獲得了部分軟件開發商的承認,成爲目前比較流行的Web 應用服務器。目前最新版本是8.0。java
Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和併發訪問用戶不是不少的場合下被廣泛使用,是開發和調試JSP 程序的首選。程序員
Tomcat 很受廣大程序員的喜歡,由於它運行時佔用的系統資源小,擴展性好,支持負載平衡與郵件服務等開發應用系統經常使用的功能;並且它還在不斷的改進和完善中,任何一個感興趣的程序員均可以更改它或在其中加入新的功能。web
Apache是一個強大的Web服務器在處理靜態頁面、處理大量網絡客戶請求、支持服務的種類以及可配置方面都有優點,高速而且強壯。可是沒有JSP/Servlet的解析能力。整合Apache和Tomcat能夠看做是用Tomcat作Apache的jsp/servlet解析插件,將二者優點結合起來。不過Tomcat做爲一個Web服務器,自己具有了基本的Web服務功能,在SUN的力推下,未來或許愈來愈強壯到不須要藉助Apache優點的地步。apache
Apache與tomcat的異同:小程序
apache支持靜態頁,tomcat支持動態的,好比servlet等,vim
通常使用apache+tomcat的話,apache只是做爲一個轉發,對jsp的處理是由tomcat來處理的。windows
apache能夠支持php\cgi\perl,可是要使用java的話,你須要tomcat在apache後臺支撐,將java請求由apache轉發給tomcat處理。api
apache是web服務器,Tomcat是應用(java)服務器,它只是一個servlet(jsp也翻譯成servlet)容器,能夠認爲是apache的擴展,可是能夠獨立於apache運行。瀏覽器
Apache是專門用了提供HTTP服務的,以及相關配置的(例如虛擬主機、URL轉發等等)
Tomcat是Apache組織在符合J2EE的JSP、Servlet標準下開發的一個JSP服務器;
Apache與tomcat整合的好處:
若是客戶端請求的是靜態頁面,則只須要Apache服務器響應請求
若是客戶端請求動態頁面,則是Tomcat服務器響應請求
由於jsp是服務器端解釋代碼的,這樣整合就能夠減小Tomcat的服務開銷
Apache只是一個WEB服務器,並不能運行JSP程序。若是要運行JSP程序,還須要安裝TOMCAT服務器軟件,經過鏈接器組件整合TOMCAT與APACHE。當用戶請求訪問.jsp網頁時,由APACHE自動調用TOMCAT服務進行解析,並將結果頁面返回到客戶端瀏覽器。
apache是web服務器,tomcat是應用(java)服務器,它只是一個servlet(jsp也翻譯成servlet)容器,能夠認爲是apache的擴展,可是能夠獨立於apache運行。
1、搭建apache網站服務器
一、編譯安裝Apache:
先從Apache官方網站上下載Linux下的apache的安裝包,這裏以http-2.3.8.tar.gz爲例:
具體操做步驟以下:
整個實驗經過編譯方式安裝apache(須要先卸載apache的RPM軟件包):
1)將apache源碼包複製到RHEL6主機中並釋放apache源碼包:
2)配置編譯選項(編譯時會報缺乏APR的依賴錯誤):
[root@jsp ~]# cd /usr/src/httpd-2.3.8/
[root@jsphttpd-2.3.8]# ./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite --enable-ssl --with-ssl=/usr/lib --enable-auth-digest --enable-cgi --with-suexec-caller=daemon --with-suexec-docroot=/usr/local/apache2/htdocs --with-apr=/opt/resource/apr-1.4.2 --with-apr-util=/opt/resource/apr-util-1.3.10
解決方法:
下載apr-1.4.2.tar.gz和apr-util-1.3.10.tar.gz兩個文件,下載後,複製到/opt/resource/目錄。
(若是按正常思路,我是先解決這些問題而後直接編譯安裝apache,這樣會省去不少沒必要要的麻煩)
解壓apr-1.4.2.tar.gz和apr-util-1.3.10.tar.gz軟件包:
按前後順序分別安裝apr和apr-util軟件:
安裝apr-1.4.2軟件:
安裝apr-util軟件:
[root@jsp apr-1.4.2]# cd ../apr-util-1.3.10
[root@jspapr-util-1.3.10]#./configure --prefix=/opt/resource/apr-util-1.3.10--with-apr=/opt/resource/apr-1.4.2
到這裏:安裝apache所需apr的環境安裝完畢。
從新執行編譯apache的./configure時仍然報錯,錯誤信息以下:
解決方法:經過YUM安裝關聯libpcre軟件包:
從新執行./configure命令完成配置編譯選項:
3)編譯並安裝apache程序(編譯安裝過程貌似很長,期間能夠喝杯咖啡哦,呵呵):
到此Apache的安裝完畢。
2、啓動、終止及重啓httpd服務
1)使用帶start選項的apachectl命令啓動httpd服務:
啓動報錯:
httpd: apr_sockaddr_info_get() failed for jsp
httpd: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1 for ServerName
排錯思路:http://wenzhongxiang.blog.51cto.com/6370734/1285772;根據提示排除故障而後查看端口是否監聽:
2)爲了使apache服務器的運行更加方便,能夠爲apachectl建立連接文件,以便管理員直接執行apachectl命令就能夠啓動apache服務。
3)設置服務器開機後自動啓動httpd服務:
3、訪問apache網站服務器的默認測試頁:
在apache服務器上新建防火牆規則,容許http協議的數據包經過:
在客戶機使用瀏覽器訪問WEB服務器:http://192.168.10.1:
整個Apache服務器的安裝及調試到此完成。
2、安裝Tomcat:
1、安裝配置jdk開發環境:
1)安裝jdk軟件(安裝Tomcat的前提條件:先安裝jdk並配置好jdk)以下圖所示:
(本實驗是在32位的RHEL6環境下搭建實驗環境,因此安裝的JDK是32位的)
爲jdk的安裝目錄及執行程序建立連接文件以方便使用:
註解:-f:選項表示ln命令替換在任何已存在的目的路徑。
修改/etc/profile文件,添加Java開發環境須要的變量設置。
JAVA_HOME=/usr/local/jdk6
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
刷新配置:
進行簡單的測試:
eg:查看安裝的jdk程序版本信息:
eg:編寫一個java測試小程序,編譯並執行:
[root@jsp local]# vim welcome.java
public class welcome {
public static void main(String args[]) {
System.out.println("Stay hungry Stay foolish");
}
}
執行javac 命令編譯程序,執行java 命令運行welcome.java程序,以下圖所示:
測試成功!
1:安裝配置Tomcat:
1)安裝(Tomcat的安裝過程簡單,只須要將源碼包解壓至目的文件夾便可):
2)配置(爲Tomcat的安裝目錄及啓動、關閉服務的腳本建立連接文件,以方便使用):
3)修改/etc/profile文件,設置Tomcat服務須要使用的變量CATALINA_HOME:
[root@jsp ~]#vim /etc/profile
JAVA_HOME=/usr/local/jdk6
CATALINA_HOME=/usr/local/tomcat
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/servlet-api.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CATALINA_HOME CLASSPATH PATH
4)修改tomcat-users.xml文件,添加管理員帳戶wen設置:
5)進行測試:
啓動Tomcat服務,並確認Tomcat服務的監聽狀態:
設置Tomcat服務開機自啓動:
訪問http://web服務器IP:8080,能夠看到Tomcat的web首頁,以下:
經過單擊「Tomcat Manager」連接登陸Tomcat並進行管理,以下:
Tomcat目錄結構:
/bin:存放windows或Linux平臺上啓動和關閉Tomcat的腳本文件
/conf:存放Tomcat服務器的各類全局配置文件,其中最重要的是server.xml和web.xml
/doc:存放Tomcat文檔
/server:包含三個子目錄:classes、lib和webapps
/server/lib:存放Tomcat服務器所需的各類JAR文件
/server/webapps:存放Tomcat自帶的兩個WEB應用admin應用和 manager應用
/common/lib:存放Tomcat服務器以及全部web應用均可以訪問的jar文件
/shared/lib:存放全部web應用均可以訪問的jar文件(可是不能被Tomcat服務器訪問)
/logs:存放Tomcat執行時的日誌文件
/src:存放Tomcat的源代碼
/webapps:Tomcat的主要Web發佈目錄,默認狀況下把Web應用文件放於此目錄
/work:存放JSP編譯後產生的class文件
如需中止Tomcat服務,能夠執行「shutdown.sh」腳本。
3、將Tomcat和Apache服務進行鏈接:
雖然Tomcat能夠獨立做爲WEB服務器,可是Tomcat的WEB功能遠沒有Apache強大,在實際應用中,能夠經過mod_jk鏈接器將Apache和Tomcat整合在一塊兒。調用Tomcat服務的工做由Apache來完成,而用戶只須要訪問Apache服務。
1)安裝mod_jk模塊:
釋放tomcat-connectors源碼包(mod_jk鏈接器源碼包)
編譯配置:到解壓後的native目錄進行安裝配置,指定apache目錄、tomcat目錄和JDK目錄位置。
[root@jspnative]#./configure --with-apxs=/usr/local/apache2/bin/apxs --with-tomcat=/usr/local/tomcat --with-java-home=/usr/local/jdk6 --with-jni
配置正確完成後,進行編譯make,指定生成文件位置並make install:
編譯安裝結束後在/usr/local/apache2/modules目錄生成了一個mod_jk.so文件,這就是轉發模塊。
2)調整Apache服務、Tomcat服務的相關配置,並重啓tomcat、apache服務。
切換到tomcat-connectors解壓目錄下的 conf子目錄下,將相關文件拷貝到apache的相關目錄下,如圖所示:
修改httpd.conf文件,在httpd.conf文件中添加以下內容:
[root@jsp ~]# vim /usr/local/apache2/conf/httpd.conf
Include conf/extra/httpd-jk.conf
AddType application/x-httpd-jsp.jsp
修改/usr/local/apache2/conf/extra/httpd-jk.conf文件,修改後內容以下:
截圖所列內容默認存在,而39、40行需用戶本身手工添加。
修改workers.properties文件(workers.properties 是轉發模塊的工做單,用來定義轉發主機和監聽端口等內容。)
修改後的內容以下:
註解:紅線標註處須要修改,標號處用「#」號註解:
將tomcat主目錄修改爲和apache網站文檔目錄一致:
因爲tomcat默認的主目錄是/usr/local/tomcat/webapps/ROOT/,所以應編輯tomcat的主配置文件/usr/local/tomcat/conf/server.xml文件,找到以下語句。
3)重啓apache和tomcat服務:
4)進行測試:
eg:建立一個顯示系統時間的JSP測試頁:
[root@jsp ~]# cd /usr/local/apache2/htdocs/
[root@jsp htdocs]# vim welcome.jsp
<%@page language="java" import="java.util.*" %>
Stay hungry Stay foolish !!!
Now the time is: <%out.println(new Date());%>
截圖內容以下:
經過瀏覽器訪問welcome.jsp測試頁,訪問效果以下:
Apache和tomcat整合實驗到此結束(這裏咱們所要了解的最基本的概念就是咱們在使用apache和tomcat時存在的最大差別在哪裏,他們整合在一塊兒的優勢又有哪些,這是關鍵)。
供你們學習,共同進步!
本文出自 「聽聞」 博客,請務必保留此出處http://wenzhongxiang.blog.51cto.com/6370734/1285892