centos下部署tomcat詳解

jopen 9年前發布 | 95K 次閱讀 CentOS Tomcat 應用服務器

這篇文章將介紹安裝和基本配置Tomcat 8在CentOS6X

Tomcat8實現jsp2.2和Servlet 3.0規范和大量的新功能。訪問管理器應用程序比起6x也有一個新的外觀和細粒度的角色

在這篇文章中,我們將安裝Tomcat8,新JDK8配置Tomcat作為服務,創建一個啟動/停止腳本,以及(可選)配置Tomcat運行在非ROOT用戶。

我們還將配置基本訪問Tomcat Manager和快速使用JAVA_OPTS看看內存管理

最后,我們將看看在80端口上運行Tomcat以及一些策略。

首先,我們需要安裝Java開發工具包(JDK)8 Tomcat8要求JDK版本最低為1.6。

第一步:安裝JDK 1.8

你可以在這里下載最新的JDK:http://www.oracle.com/technetwork/java/javase/downloads/index.html

我們將安裝較新的jdk,jdk-8u25

我的操作系統是CentOS6.5_x64,這里選擇是的:jdk-8u25-linux-x64.tar.gz 如果你是32位系統,請選擇jdk-8u25-linux-i586.tar.gz

首先創建一個目錄/usr/java:

[root@srv6 ~]# mkdir /usr/java

進入到/usr/java

[root@srv6 ~]# cd /usr/java    
[root@srv6 java ]#

下載合適的JDK并將其保存到/usr/java目錄。 解壓jdk-8u25-linux-x64.tar.gz/usr/java目錄,使用命令tar -xzf:

[root@srv6 java]# tar -xzf jdk-8u25-linux-x64.tar.gz

這里會創建/usr/java/jdk1.8.0_25,這個是JAVA_HOME

我們現在可以設置JAVA_HOME并將它加入環境變量

[root@srv6 java]# JAVA_HOME=/usr/java/jdk1.8.0_25
[root@srv6 java]# export JAVA_HOME  
[root@srv6 java]# PATH=$JAVA_HOME/bin:$PATH  [root@srv6 java]# export PATH

將JAVA_HOME設置為永久,我們需要在~/.bash_profile添加,也可以配置/etc/profile給所有用戶

JAVA_HOME=/usr/java/jdk1.8.0_25export JAVA_HOME  
PATH=$JAVA_HOME/bin:$PATH  export PATH

設置了~/.bash_profile后退出重新登錄測試是否正確的設置了JAVA_HOME

[root@srv6 ~]#  echo $JAVA_HOME  /usr/java/jdk1.7.0_05

第二部:下載并解壓Tomcat8

將tomcat8安裝在/usr/share

切換到/usr/share目錄:

[root@srv6 ~]# cd /usr/share  
[root@srv6 share ]#

下載tomcat8:http://mirror.tcpdiag.net/apache/tomcat/tomcat-8/v8.0.23/bin/apache-tomcat-8.0.23.tar.gz 并解壓到/usr/share

使用tar -xzf解壓:

[root@srv6 share ]# tar -xzf apache-tomcat-8.0.23.tar.gz

這將創建一個目錄/usr/share/apache-tomcat-8.0.23.tar.gz

第三步:配置Tomcat作為服務運行

現在,我們將看到如何運行Tomcat作為服務和創建一個簡單的啟動/停止/啟動腳本,以及在引導啟動Tomcat。

切換到/etc/init.d目錄創建一個tomcat的腳本:

[root@srv6 share]# cd /etc/init.d  
[root@srv6 init.d]# vi tomcat

下面是我們使用的腳本:

#!/bin/bash  # description: Tomcat Start Stop Restart  # processname: tomcat  # chkconfig: 234 20 80  JAVA_HOME=/usr/java/jdk1.8.0_25 
export JAVA_HOME  
PATH=$JAVA_HOME/bin:$PATH  export PATH  
CATALINA_HOME=/usr/share/apache-tomcat-8.0.23case $1 in  
start)  
sh $CATALINA_HOME/bin/startup.sh  
;;   
stop)     
sh $CATALINA_HOME/bin/shutdown.sh  
;;   
restart)  
sh $CATALINA_HOME/bin/shutdown.sh  
sh $CATALINA_HOME/bin/startup.sh  
;;   
esac      exit 0

上面的腳本非常簡單,包含你需要的基本元素

正如你看到的,我們只需要調用startup.shshutdown.sh,sh腳本位于tomcat的bin目錄

你可以根據需要調整腳本

CATALINA_HOME是Tomcat的家目錄(/usr/share/apache-tomcat-8.0.23)

現在給腳本授權

[root@srv6 init.d]# chmod 755 tomcat

我們使用chkconfig啟動tomcat

[root@srv6 init.d]# chkconfig --add tomcat  
[root@srv6 init.d]# chkconfig --level 234 tomcat on

驗證:

[root@srv6 init.d]# chkconfig --list tomcat  
tomcat          0:off   1:off   2:on    3:on    4:on    5:off   6:off

現在我們來測試腳本!

啟動Tomcat:

[root@srv6 ~]# service tomcat start  
Using CATALINA_BASE:   /usr/share/apache-tomcat-8.0.23
Using CATALINA_HOME:   /usr/share/apache-tomcat-8.0.23
Using CATALINA_TMPDIR: /usr/share/apache-tomcat-8.0.23/temp  
Using JRE_HOME:        /usr/java/jdk1.8.0_25
Using CLASSPATH:       /usr/share/apache-tomcat-8.0.23/bin/bootstrap.jar:/usr/share/apache-tomcat-8.0.23/bin/tomcat-juli.jar
Tomcat started.

停止Tomcat:

[root@srv6 ~]# service tomcat stop  
Using CATALINA_BASE:   /usr/share/apache-tomcat-8.0.23
Using CATALINA_HOME:   /usr/share/apache-tomcat-8.0.23
Using CATALINA_TMPDIR: /usr/share/apache-tomcat-8.0.23/temp  
Using JRE_HOME:        /usr/java/jdk1.8.0_25
Using CLASSPATH:       /usr/share/apache-tomcat-8.0.23/bin/bootstrap.jar:/usr/share/apache-tomcat-8.0.23/bin/tomcat-juli.jar

重啟Tomcat(必須先啟動):

[root@srv6 ~]# service tomcat restart  
Using CATALINA_BASE:   /usr/share/apache-tomcat-8.0.23
Using CATALINA_HOME:   /usr/share/apache-tomcat-8.0.23
Using CATALINA_TMPDIR: /usr/share/apache-tomcat-8.0.23/temp  
Using JRE_HOME:        /usr/java/jdk1.8.0_25
Using CLASSPATH:       /usr/share/apache-tomcat-8.0.23/bin/bootstrap.jar:/usr/share/apache-tomcat-8.0.23/bin/tomcat-juli.jar  
Using CATALINA_BASE:   /usr/share/apache-tomcat-8.0.23
Using CATALINA_HOME:   /usr/share/apache-tomcat-8.0.23
Using CATALINA_TMPDIR: /usr/share/apache-tomcat-8.0.23/temp  
Using JRE_HOME:        /usr/java/jdk1.8.0_25
Using CLASSPATH:       /usr/share/apache-tomcat-8.0.23/bin/bootstrap.jar:/usr/share/apache-tomcat-8.0.23/bin/tomcat-juli.jar
Tomcat started.

我們應該檢日志查看是否有錯誤

[root@srv6 init.d]# tail -f /usr/share/apache-tomcat-8.0.23/logs/catalina.out

我們現在可以訪問Tomcat Manager頁面:

http://yourdomain.com:8080 或者 http://yourIPaddress:8080 可以看到tomcat主頁 centos下部署tomcat詳解

第四步:配置Tomcat Manager訪問

出于安全原因,Tomcat manager沒有用戶或密碼,默認為創建角色。在生產環境,最好是刪除管理器應用程序。

設置角色,用戶名和密碼,我們需要配置tomcat/conf下面的tomcat-user.xml文件

默認情況下將tomcat-users.xml中的元素是被注釋的

創建一個角色擁有如下權限:

  • manager-gui

  • manager-status

  • manager-jmx

  • manager-script

  • admin-gu

  • admin-script.

我們可以設置manager gui的角色,例如如下

<tomcat-users>  
  <role rolename="manager-gui"/>  
  <user username="tomcat" password="secret" roles="manager-gui"/>  
</tomcat-users>

應該注意賦予多個角色,以免不安全。

第五步(可選):使用JAVA_OPTS管理內存配置

正確配置堆內存取決于很多因素,為簡單起見,我們將堆大小設置為相同的值128MB 添加JAVA_OPTS內存參數在我們的Catalina.sh文件。 下面編輯Catalina.sh文件設置堆大小

JAVA_OPTS="-Xms128m -Xmx128m"

我通常只是添加這個文件第二行:

#!/bin/sh  JAVA_OPTS="-Xms128m -Xmx128m"   
# Licensed to the Apache Software Foundation (ASF) under one or more  
# contributor license agreements.  See the NOTICE file distributed with  
# this work for additional information regarding copyright ownership.  
# The ASF licenses this file to You under the Apache License, Version 2.0  
# (the "License"); you may not use this file except in compliance with  
# the License.  You may obtain a copy of the License at

第六步(可選):如何給指定的用戶使用Tomcat

在上面的配置中我們使用ROOT用戶運行Tomcat,處于安全原因,ROOT最好運行那些有必要的服務 當然沒有規定必須這么做,但你最好謹慎點~

非ROOT用戶運行Tomcat,需要做到以下幾點:

  1. 創建tomcat組:

  2. [root@srv6 ~]# groupadd tomcat
  3. 創建tomcat用戶并將他加入到組

  4. [root@srv6 ~]# useradd -s /bin/bash -g tomcat tomcat

    上面的寫法將tomcat用戶的家目錄創建在/home/tomcat 如果你想讓主目錄放在其他位置,可以使用-d參數

    [root@srv6 ~]# useradd -g tomcat -d /usr/share/apache-tomcat-8.0.23/tomcat tomcat

    這樣可以將tomcat用戶的家目錄設置為/usr/share/apache-tomcat-8.0.23/tomcat

  5. 將tomcat目錄的所有權給tomcat用戶

  6. [root@srv6 ~]# chown -Rf tomcat.tomcat /usr/share/apache-tomcat-8.0.23/
  7. 調整tomcat的啟動腳本,在新腳本中添加tomcat用戶:

  8. #!/bin/bash  
    # description: Tomcat Start Stop Restart  
    # processname: tomcat  # chkconfig: 234 20 80  JAVA_HOME=/usr/java/jdk1.8.0_25  
    export JAVA_HOME  
    PATH=$JAVA_HOME/bin:$PATH  export PATH  
    CATALINA_HOME=/usr/share/apache-tomcat-8.0.23/bin  
    
    case $1 in  
    start)  
    /bin/su tomcat $CATALINA_HOME/startup.sh  
    ;;   
    stop)     
    /bin/su tomcat $CATALINA_HOME/shutdown.sh  
    ;;   
    restart)  
    /bin/su tomcat $CATALINA_HOME/shutdown.sh  
    /bin/su tomcat $CATALINA_HOME/startup.sh  
    ;;   
    esac      exit 0

第七部(可選):如何將tomcat運行在80端口

運行下面的服務端口1024是給root以外的用戶,你可以添加到你的ipables:

[root@srv6 ~]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080    
[root@srv6 ~]# iptables -t nat -A PREROUTING -p udp -m udp --dport 80 -j REDIRECT --to-ports 8080

重啟iptables

service iptables restart

第八部(可選):運行Apache+Tomcat

在80端口上運行Tomcat,如果你有前面的Apache Tomcat,您可以使用使用Apache Tomcat的mod_proxy以及apj connector映射到vhost

當Tomcat是獨立性能的改善,我仍然喜歡它前面的空間的原因。

在您的Apache配置,確保KeepAlive設置是on。 Apache調優,當然,本身是一個很大的話題……

實例1: VHOST with mod_proxy:

<VirtualHost *:80>  
    ServerAdmin admin@yourdomain.com  
    ServerName yourdomain.com  
    ServerAlias www.yourdomain.com  


    ProxyRequests Off  
    ProxyPreserveHost On  
    <Proxy *>  
       Order allow,deny  
       Allow from all  
    </Proxy>  


    ProxyPass / http://localhost:8080/  
    ProxyPassReverse / http://localhost:8080/  


    ErrorLog logs/yourdomain.com-error_log  
    CustomLog logs/yourdomain.com-access_log common  

</VirtualHost>

實例 2: VHOST with ajp connector and mod_proxy:

<VirtualHost *:80>  
    ServerAdmin admin@yourdomain.com  
    ServerName yourdomain.com  
    ServerAlias www.yourdomain.com  


    ProxyRequests Off  
    ProxyPreserveHost On  
    <Proxy *>  
    Order allow,deny  
    Allow from all  
    </Proxy>  

    ProxyPass / ajp://localhost:8009/  
    ProxyPassReverse / ajp://localhost:8009/  


    ErrorLog logs/yourdomain.com-error_log  
    CustomLog logs/yourdomain.com-access_log common  
</VirtualHost>

vhost在這兩個例子,我們"映射"到Tomcat的根目錄。

如果我們希望映射到應用程序如yourdomain.com/myapp,我們可以添加一些改寫如下所示。

這將重寫所有請求yourdomain.com yourdomain.com/myapp

實例 3: VHOST with rewrite:

<VirtualHost *:80>  
    ServerAdmin admin@yourdomain.com  
    ServerName yourdomain.com  
    ServerAlias www.yourdomain.com  


    RewriteEngine On  
    RewriteRule ^/$ myapp/ [R=301]  

    ProxyRequests Off  
    ProxyPreserveHost On  
    <Proxy *>  
    Order allow,deny  
    Allow from all  
    </Proxy>  

    ProxyPass / ajp://localhost:8009/  
    ProxyPassReverse / ajp://localhost:8009/  


    ErrorLog logs/yourdomain.com-error_log  
    CustomLog logs/yourdomain.com-access_log common  
</VirtualHost>

英文原文:http://davidghedini.blogspot.com/2011/02/install-tomcat-7-on-centos-rhel.html

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!