天天看點

Tomcat配置及其LNMT/LAMT/LNAMT實作方式

一、簡介

    前面所講的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>&lt;role rolename=</code><code>"manager-gui"</code><code>/&gt;</code>

<code>&lt;role rolename=</code><code>"admin-gui"</code><code>/&gt;</code>

<code>&lt;user username=</code><code>"tomcat"</code> <code>password=</code><code>"tomcat"</code> <code>roles=</code><code>"manager-gui,admin-gui"</code><code>/&gt;</code>

    五、實戰配置LNMT/LAMT、LNAMT實作動靜分離

    LNMT實作說明:隻需配置nginx的server标簽,在标簽中添加proxy_pass http://ip:8080即可向後端主機反代。

    基于LAMT實作方式有兩種,一種基于http,另一種基于ajp,如下配置:

<code>1、第一種方式的配置機制,使用虛拟主機</code>

<code>&lt;VirtualHost *:80&gt;</code>

<code>ServerName web.alren.com</code>

<code>ProxyRequests Off</code>

<code>ProxyVia On</code>

<code>ProxyPreserveHost On</code>

<code>&lt;Proxy *&gt;</code>

<code>Require all granted</code>

<code>&lt;</code><code>/Proxy</code><code>&gt;</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>&lt;Location /&gt;</code>

<code>&lt;</code><code>/Location</code><code>&gt;</code>

<code>&lt;</code><code>/VirtualHost</code><code>&gt;</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,如需轉載請自行聯系原作者