Ubuntu16.04下Apache和tomcat服務器的整合

1.區別html

  Apache是一個Web服務器,只支持靜態網頁,也能夠用做文件的存儲和訪問,可是動態網頁就沒法處理了。java

  Tomcat能夠做爲獨立的web服務器來運行,也能夠是應用(java)服務器(用來跑Java應用),是一個Servlet容器。web

  因爲Apache解釋靜態頁面要比tomcat快速並且穩定,網站可使用一個Apache做爲Web服務器,爲網站的靜態頁面請求提供服務;同時使用Tomcat服務器做爲一個Servlet/JSP插件,顯示網站的動態頁面。apache

 

2.怎麼整合瀏覽器

  整合:全部訪問都先通過Apache,Apache通過篩選,把符合必定規則的請求轉發給Tomcat進行處理。tomcat

  Apache中有一個模塊叫module_jk,專門負責作轉發的工做,該模塊以動態庫的形式存在,須要的時候才進行加載。Tomcat在Apache端叫作worker,module_jk通常經過8009的TCP端口跟Tomcat使用AJP協議進行通訊。服務器

 

3.經驗【劃重點】app

  (1)若是你只是單純地寫一個後臺服務,而後想開一個圖片託管(存儲)或相似的文件存儲和訪問,那麼只用tomcat就能夠了,不須要費勁進行兩個服務器一塊兒用。只須要把要管理的文件(圖片)放到tomcat的webapps目錄下,訪問路徑就能獲取到對應的文件(圖片)。webapp

  (2)若是你想apache使用80和443(默認是8443的),tomcat使用8080和443,那就不用試了,443會衝突起不來。(需求來源:不想要帶端口訪問,而是直接用域名,還都得是https)jvm

  (3)若是碰到安裝過程或者啓動過程出錯的,那麼思考一下緣由,複製一下報錯信息,搜索一下解決方法。

 

4.整合步驟

(1)安裝Java環境,官網下載JDK並安裝

(2)安裝apache服務器(httpd安裝)。

  官網下載連接:http://httpd.apache.org/download.cgi

  安裝教程:http://www.javashuo.com/article/p-uuupxqdm-mm.html

  在bin目錄下執行命令:    ./httpd -k start

  訪問80端口查看安裝是否成功。

(3)安裝tomcat服務器。

  官網下載連接:http://tomcat.apache.org/

  解壓:tar -zxvf XXX.tar.gz

  名字太長了重命名:mv  原名字  新名字(好比tomcat7)

  挪位置:mv tomcat7 路徑(好比/usr/local)

  XXXX   參見教程: https://blog.csdn.net/jenyzhang/article/details/70159769 

  啓動tomcat  :  sudo ./bin/startup.sh

  【怎麼找Java安裝路徑】:update-alternatives --config java   (whereis Java 有的時候沒用)

  【看tomcat的module】:到安裝目錄下的modules裏面查看有什麼module  好比這裏是:/usr/local/tomcat7/modules

  【日誌】:在安裝目錄的logs裏面,好比這裏是: /usr/local/tomcat7/logs  啓動日誌:catalina.log 

 

(4)整合

  源教程來自,可直接訪問:https://www.jianshu.com/p/2547f295b6a2

   【注意】:下面涉及到的路徑,請根據本身的實際安裝路徑來。

  【查看端口開啓情況】:使用命令  lsof -i:8080  

 

1、安裝mod_jk.so並配置

1.安裝mod_jk

# apt-get install libapache2-mod-jk

安裝完後,在/etc/apache2/mods-enabled下會多出一個jk.load文件,重啓apache2後,apache自動裝載這個文件以加載mod_jk

 

2.找到worker配置文件

# vi jk.conf

找到JkWorkersFile:

JkWorkersFile /etc/libapache2-mod-jk/workers.properties

說明了jk_worker的配置文件爲/etc/libapache2-mod-jk/workers.properties,要將tomcat做爲一個worker就得修改這個文件。

 

3.在Apache端設置worker

# vi /etc/libapache2-mod-jk/workers.properties

(1)修改worker名稱爲mytomcat

a.找到worker.list:

worker.list=ajp13_worker

b.將文件中全部ajp13_worker替換成mytomcat

(2)設置mytomcat運行環境

tomcat和jdk的安裝目錄,以便worker能正常運行

workers.tomcat_home=/usr/share/apache-tomcat-8.5.35

workers.java_home=/usr/share/jdk1.8.0_131

(3)設置轉發規則(若是沒有的能夠新建一個)

vi /etc/apache2/sites-available/000-default.conf

在VirtualHost標籤末尾添加:JkMount /examples/* mytomcat

<VirtualHost *:80>

...

JkMount /examples/* mytomcat

</VirtualHost>

意思是凡是/examples/開頭的連接請求都交給mytomcat處理,如:http://192.168.1.155/examples/index.html

examples的路徑位於tomcat目錄下:/usr/share/apache-tomcat-8.5.35/webapps/examples

/**到此Apache端的配置完成,須要修改的文件:

jk.load (mod_jk加載設置,可能要改)

jk.conf (mod_jk設置,可能要改)

workers.properties (worker設置,必需要改)

sites-available/000-default.conf (轉發規則設置,必需要改)**/

 

2、在tomcat端設置worker

#vi /usr/share/apache-tomcat-8.5.35/conf/server.xml

1.修改worker名稱

修改Engine標籤爲:

<Engine name="Catalina" defaultHost="localhost" jvmRoute="mytomcat">

這樣Apache和tomcat就能經過8009端口,使用AJP1.3協議進行通訊了

 

2.檢查監聽端口是不是8009,協議是否跟Apache端設置同樣(AJP1.3(apache端爲ajp13))

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />

 

3、功能驗證

1.重啓apache

到httpd目錄下重啓:  ./httpd -k restart

2.重啓tomcat

到bin目錄下執行shutdown.sh

到bin目錄下執行startup.sh

3.瀏覽器請求

分別請求apache的一個文件和tomcat的一個請求(或一個文件)進行驗證
相關文章
相關標籤/搜索