一、簡介
前面所講的web服務主要是apache和nginx,apache适合比較重量級的并發,且不适合并發小檔案,而nginx則有這一優點,除此之外tomcat在企業級應用中比較廣泛,因為此web應用比較安全,漏洞比較少,Tomcat伺服器是一個免費的開源的Web應用伺服器,屬于輕量級應用伺服器,在中小型系統和并發通路使用者不是很多的場合下被普遍使用,是開發和調試JSP程式的首選,受到當今網際網路企業的青睐。
二、Tomcat安裝
搭建tomcat運作環境需分兩步實作,jdk+tomcat,tomcat的安裝方式有兩種,系統自帶的rpm包安裝及其使用官方的二進制包,同時jdk的安裝方式也有兩種,系統自帶的rpm包及官方下載下傳的oracle的jdk的rpm包。
安裝方式一如下所示:
1
2
<code>yum -y </code><code>install</code> <code>java-1.7.0-openjdk_x86_64 java-1.7.0-openjdk-devel_x86_64</code>
<code>yum -y </code><code>install</code> <code>tomcat tomcat-lib tomcat-webapps tomcat-admin-webapp</code>
安裝方式二如下所示:
3
4
5
6
7
8
9
10
<code>rpm -ivh jdk-7u79-linux-x64.rpm </code>
<code>tar</code> <code>xf apache-tomcat-7.0.57.</code><code>tar</code><code>.gz -C </code><code>/usr/local/</code>
<code>ln</code> <code>-s apache-tomcat-7.0.57 tomat</code>
<code>vi</code> <code>/etc/profile</code><code>.d</code><code>/tomcat</code><code>.sh </code><code>#通過官網下載下傳二進制包及其rpm安裝的tomcat和jdk需導入環境變量</code>
<code>CATALINA_BASE=</code><code>/usr/local/tomcat</code> <code>#tomcat導入環境變量</code>
<code>PATH=$CATALINA_BASE</code><code>/bin</code><code>:$PATH</code>
<code>export</code> <code>CATALINA_BASE PATH</code>
<code>vi</code> <code>/etc/profile</code><code>.d</code><code>/java</code><code>.sh </code><code>#java導入環境變量,和方式一安裝jdk環境變量有很大的差別</code>
<code>JAVA_HOME=</code><code>/usr/java/latest</code>
<code>PATH=$JAVA_HOME</code><code>/bin</code><code>:$PATH</code>
三、Tomcat配置檔案詳解
其配置檔案如下:
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<code>[root@node2 conf]</code><code># ll</code>
<code>total 204</code>
<code>drwxr-xr-x 6 tomcat tomcat 87 Nov 20 19:24 Catalina</code>
<code>-rw------- 1 tomcat tomcat 12257 Nov 3 2014 catalina.policy </code><code>#當使用-security選項來啟動tomcat執行個體時,會讀取配置檔案來實作基于安全的政策運作方式</code>
<code>-rw------- 1 tomcat tomcat 6294 Nov 3 2014 catalina.properties </code><code>#catalina相關屬性配置</code>
<code>-rw------- 1 tomcat tomcat 1394 Nov 3 2014 context.xml </code><code>#每個webapps都可以有專用的配置檔案,這些配置檔案通過位于webapps應用程式自己的目錄下的WEEB-INF目錄中,此content.xml為每個webapps提供預設配置</code>
<code>-rw------- 1 tomcat tomcat 3288 Nov 3 2014 logging.properties </code><code>#日志系統相關配置</code>
<code>-rw------- 1 tomcat tomcat 8815 Nov 21 20:52 server.xml </code><code>#主配置檔案</code>
<code>-rw------- 1 tomcat tomcat 1663 Nov 20 19:17 tomcat-</code><code>users</code><code>.xml </code><code>#使用者認證和賬号和密碼檔案</code>
<code>-rw------- 1 tomcat tomcat 163385 Nov 3 2014 web.xml </code><code>#每個webapps隻有在部署後才能夠被通路,此檔案則用于為各個webapps定義預設的部署方式</code>
<code>[root@node2 conf]</code><code>#</code>
<code>#web相關的組織結構</code>
<code>index.jsp </code><code>#目前webapps的首頁 </code>
<code>WEB-INF/:目前webapps的私有資源目錄,通常存放目前webapps自用的web.xml </code>
<code>META-INF/:目前webapps的私有資源目錄,通常存放webapps自用的content.xml </code>
<code>class/:類檔案,目前webapps的私有類 </code>
<code>lib/:目前webapps的私有類被打包成jar的格式 </code>
<code>webapps的歸檔格式: </code>
<code> </code><code>.war:webapp</code>
<code> </code><code>.jar:ejb的類打封包件</code>
<code> </code><code>.rar:資源配置類打封包件</code>
<code> </code><code>.ear:企業及webapps</code>
<code>導入環境變量:</code>
<code>cat</code> <code>java.sh</code>
<code>export</code> <code>JAVA_HOME PATH</code>
<code>cat</code> <code>tomcat.sh</code>
<code>CATALINA_BASE=</code><code>/usr/local/tomcat</code>
四、啟動tomcat配置應用
手動添加一個測試應用目錄:
1、建立一個webapps特有的目錄結構
mkdir -pv myapp/{class,WEB-INF,META-INF,lib}
2、提供一個webapps的首頁面(自行解決)
3、啟動應用程式,通路預設首頁面及其myapp頁面
systemctl start tomat
實驗圖如下:
4、啟動管理頁面工具編輯tomcat-user.xml配置檔案,添加如下配置重新開機服務。
<code><role rolename=</code><code>"manager-gui"</code><code>/></code>
<code><role rolename=</code><code>"admin-gui"</code><code>/></code>
<code><user username=</code><code>"tomcat"</code> <code>password=</code><code>"tomcat"</code> <code>roles=</code><code>"manager-gui,admin-gui"</code><code>/></code>
五、實戰配置LNMT/LAMT、LNAMT實作動靜分離
LNMT實作說明:隻需配置nginx的server标簽,在标簽中添加proxy_pass http://ip:8080即可向後端主機反代。
基于LAMT實作方式有兩種,一種基于http,另一種基于ajp,如下配置:
<code>1、第一種方式的配置機制,使用虛拟主機</code>
<code><VirtualHost *:80></code>
<code>ServerName web.alren.com</code>
<code>ProxyRequests Off</code>
<code>ProxyVia On</code>
<code>ProxyPreserveHost On</code>
<code><Proxy *></code>
<code>Require all granted</code>
<code><</code><code>/Proxy</code><code>></code>
<code>ProxyPass / http:</code><code>//node2</code><code>.alren.com:8080/</code>
<code>proxyPassReverse / http:</code><code>//node2</code><code>.alren.com:8080/</code>
<code><Location /></code>
<code><</code><code>/Location</code><code>></code>
<code><</code><code>/VirtualHost</code><code>></code>
<code>2、使用ajp機制,使用虛拟主機 </code>
<code>ProxyPass / ajp:</code><code>//node2</code><code>.alren.com:8009/</code>
<code>proxyPassReverse / ajp:</code><code>//node2</code><code>.alren.com:8009/</code>
當配置成功後通路首頁,模拟前端代理當機,則原有的代理将不會反代至其頁面,報錯為請求不存在,無法通路頁面。
LNAMT實作方式則通過nginx做前端排程,将使用者的請求反代至後端的主機,其實作方式非常簡單,隻需在nginx上配置upstream組即可,在server标簽中調用即可,結合正規表達式模式比對可實作動靜分離。另起一台伺服器其配置簡單化代碼如下所示:
<code>http {</code>
<code>.....</code>
<code>upstream tcsrvs {</code>
<code>server 10.1.10.65:8080;</code>
<code>server 10.1.10.66:8080;</code>
<code> </code><code>}</code>
<code> </code><code>.....</code>
<code>}</code>
<code>server {</code>
<code>......</code>
<code> </code><code>location ~* \.(jsp|</code><code>do</code><code>)$ {</code>
<code>proxy_pass http:</code><code>//tcsrvs</code><code>;</code>
<code> </code><code>......</code>
總結:tomcat的配置比起apache/ngnix略微複雜一點點,但了解過前面所學的web知識再來配置tomcat,可以說是遊刃有餘,與此同時,可采用http做前端排程,其實作效果不亞于nginx,其可實作會話粘性等,此内容将在以後的文章中介紹。
本文轉自chengong1013 51CTO部落格,原文連結:http://blog.51cto.com/purify/1875977,如需轉載請自行聯系原作者