(轉)Linux整合apache和tomcat構建Web服務器

原創做品,容許轉載,轉載時請務必以超連接形式標明文章  原始出處 、做者信息和本聲明。不然將追究法律責任。 http://wenzhongxiang.blog.51cto.com/6370734/1285892

Tomcat簡介及做用:php

Tomcat 技術先進、性能穩定,並且免費,於是深受Java 愛好者的喜好並獲得了部分軟件開發商的承認,成爲目前比較流行的Web 應用服務器。目前最新版本是8.0java

Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和併發訪問用戶不是不少的場合下被廣泛使用,是開發和調試JSP 程序的首選。程序員

Tomcat 很受廣大程序員的喜歡,由於它運行時佔用的系統資源小,擴展性好,支持負載平衡與郵件服務等開發應用系統經常使用的功能;並且它還在不斷的改進和完善中,任何一個感興趣的程序員均可以更改它或在其中加入新的功能。web

Apache是一個強大的Web服務器在處理靜態頁面、處理大量網絡客戶請求、支持服務的種類以及可配置方面都有優點,高速而且強壯。可是沒有JSP/Servlet的解析能力。整合ApacheTomcat能夠看做是用TomcatApachejsp/servlet解析插件,將二者優點結合起來。不過Tomcat做爲一個Web服務器,自己具有了基本的Web服務功能,在SUN的力推下,未來或許愈來愈強壯到不須要藉助Apache優點的地步。apache

Apachetomcat的異同:小程序

  • apache支持靜態頁,tomcat支持動態的,好比servlet等,vim

  • 通常使用apache+tomcat的話,apache只是做爲一個轉發,對jsp的處理是由tomcat來處理的。windows

  • apache能夠支持php\cgi\perl,可是要使用java的話,你須要tomcatapache後臺支撐,將java請求由apache轉發給tomcat處理。api

  • apacheweb服務器,Tomcat是應用(java)服務器,它只是一個servlet(jsp也翻譯成servlet)容器,能夠認爲是apache的擴展,可是能夠獨立於apache運行。瀏覽器

  • Apache是專門用了提供HTTP服務的,以及相關配置的(例如虛擬主機、URL轉發等等)

  • TomcatApache組織在符合J2EEJSPServlet標準下開發的一個JSP服務器;

Apachetomcat整合的好處

  • 若是客戶端請求的是靜態頁面,則只須要Apache服務器響應請求

  • 若是客戶端請求動態頁面,則是Tomcat服務器響應請求

  • 由於jsp是服務器端解釋代碼的,這樣整合就能夠減小Tomcat的服務開銷

Apache只是一個WEB服務器,並不能運行JSP程序。若是要運行JSP程序,還須要安裝TOMCAT服務器軟件,經過鏈接器組件整合TOMCATAPACHE。當用戶請求訪問.jsp網頁時,由APACHE自動調用TOMCAT服務進行解析,並將結果頁面返回到客戶端瀏覽器。

apacheweb服務器,tomcat是應用(java)服務器,它只是一個servlet(jsp也翻譯成servlet)容器,能夠認爲是apache的擴展,可是能夠獨立於apache運行。

1、搭建apache網站服務器

一、編譯安裝Apache

先從Apache官方網站上下載Linux下的apache的安裝包,這裏以http-2.3.8.tar.gz爲例:

具體操做步驟以下:

整個實驗經過編譯方式安裝apache(須要先卸載apacheRPM軟件包):

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.gzapr-util-1.3.10.tar.gz兩個文件,下載後,複製到/opt/resource/目錄。

(若是按正常思路,我是先解決這些問題而後直接編譯安裝apache,這樣會省去不少沒必要要的麻煩)

解壓apr-1.4.2.tar.gz和apr-util-1.3.10.tar.gz軟件包:

按前後順序分別安裝aprapr-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環境下搭建實驗環境,因此安裝的JDK32位的)

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,能夠看到Tomcatweb首頁,以下:

經過單擊「Tomcat Manager」連接登陸Tomcat並進行管理,以下:

Tomcat目錄結構:

  • /bin:存放windowsLinux平臺上啓動和關閉Tomcat的腳本文件

  • /conf:存放Tomcat服務器的各類全局配置文件,其中最重要的是server.xmlweb.xml

  • /doc:存放Tomcat文檔

  • /server:包含三個子目錄:classeslibwebapps

  • /server/lib:存放Tomcat服務器所需的各類JAR文件

  • /server/webapps:存放Tomcat自帶的兩個WEB應用admin應用和 manager應用

  • /common/lib:存放Tomcat服務器以及全部web應用均可以訪問的jar文件

  • /shared/lib:存放全部web應用均可以訪問的jar文件(可是不能被Tomcat服務器訪問)

  • /logs:存放Tomcat執行時的日誌文件

  • /src:存放Tomcat的源代碼

  • /webappsTomcat的主要Web發佈目錄,默認狀況下把Web應用文件放於此目錄

  • /work:存放JSP編譯後產生的class文件

如需中止Tomcat服務,能夠執行「shutdown.sh」腳本

 

3、將TomcatApache服務進行鏈接:

雖然Tomcat能夠獨立做爲WEB服務器,可是TomcatWEB功能遠沒有Apache強大,在實際應用中,能夠經過mod_jk鏈接器將ApacheTomcat整合在一塊兒。調用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服務的相關配置,並重啓tomcatapache服務。

切換到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文件,修改後內容以下:

截圖所列內容默認存在,而3940行需用戶本身手工添加。

修改workers.properties文件(workers.properties 是轉發模塊的工做單,用來定義轉發主機和監聽端口等內容。)

修改後的內容以下:

註解:紅線標註處須要修改,標號處用「#」號註解:

tomcat主目錄修改爲和apache網站文檔目錄一致:

因爲tomcat默認的主目錄是/usr/local/tomcat/webapps/ROOT/所以應編輯tomcat的主配置文件/usr/local/tomcat/conf/server.xml文件,找到以下語句。

3)重啓apachetomcat服務:

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測試頁,訪問效果以下:

Apachetomcat整合實驗到此結束(這裏咱們所要了解的最基本的概念就是咱們在使用apache和tomcat時存在的最大差別在哪裏,他們整合在一塊兒的優勢又有哪些,這是關鍵)。

供你們學習,共同進步!

 

本文出自 「聽聞」 博客,請務必保留此出處http://wenzhongxiang.blog.51cto.com/6370734/1285892

相關文章
相關標籤/搜索