centos下部署tomcat详解

前端之家收集整理的这篇文章主要介绍了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@srv6java]#

下载合适的JDK并将其保存到/usr/java目录。 解压jdk-8u25-linux-x64.tar.gz/usr/java目录,使用命令tar -xzf:

[root@srv6java]#tar-xzfjdk-8u25-linux-x64.tar.gz

这里会创建/usr/java/jdk1.8.0_25,这个是JAVA_HOME

我们现在可以设置JAVA_HOME并将它加入环境变量

[root@srv6java]#JAVA_HOME=/usr/java/jdk1.8.0_25
[root@srv6java]#exportJAVA_HOME
[root@srv6java]#PATH=$JAVA_HOME/bin:$PATH[root@srv6java]#exportPATH

将JAVA_HOME设置为永久,我们需要在~/.bash_profile添加,也可以配置/etc/profile给所有用户

JAVA_HOME=/usr/java/jdk1.8.0_25exportJAVA_HOME
PATH=$JAVA_HOME/bin:$PATHexportPATH

设置了~/.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@srv6share]#

下载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@srv6share]#tar-xzfapache-tomcat-8.0.23.tar.gz

这将创建一个目录/usr/share/apache-tomcat-8.0.23.tar.gz

第三步:配置Tomcat作为服务运行

现在,我们将看到如何运行Tomcat作为服务和创建一个简单的启动/停止/启动脚本,以及在引导启动Tomcat。

切换到/etc/init.d目录创建一个tomcat的脚本:

[root@srv6share]#cd/etc/init.d
[root@srv6init.d]#vitomcat

下面是我们使用的脚本:

#!/bin/bash#description:TomcatStartStopRestart#processname:tomcat#chkconfig:2342080JAVA_HOME=/usr/java/jdk1.8.0_25
exportJAVA_HOME
PATH=$JAVA_HOME/bin:$PATHexportPATH
CATALINA_HOME=/usr/share/apache-tomcat-8.0.23case$1in
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
;;
esacexit0

上面的脚本非常简单,包含你需要的基本元素

正如你看到的,我们只需要调用startup.shshutdown.sh,sh脚本位于tomcat的bin目录

你可以根据需要调整脚本

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

现在给脚本授权

[root@srv6init.d]#chmod755tomcat

我们使用chkconfig启动tomcat

[root@srv6init.d]#chkconfig--addtomcat
[root@srv6init.d]#chkconfig--level234tomcaton

验证:

[root@srv6init.d]#chkconfig--listtomcat
tomcat0:off1:off2:on3:on4:on5:off6:off

现在我们来测试脚本!

启动Tomcat:

[root@srv6~]#servicetomcatstart
UsingCATALINA_BASE:/usr/share/apache-tomcat-8.0.23
UsingCATALINA_HOME:/usr/share/apache-tomcat-8.0.23
UsingCATALINA_TMPDIR:/usr/share/apache-tomcat-8.0.23/temp
UsingJRE_HOME:/usr/java/jdk1.8.0_25
UsingCLASSPATH:/usr/share/apache-tomcat-8.0.23/bin/bootstrap.jar:/usr/share/apache-tomcat-8.0.23/bin/tomcat-juli.jar
Tomcatstarted.

停止Tomcat:

[root@srv6~]#servicetomcatstop
UsingCATALINA_BASE:/usr/share/apache-tomcat-8.0.23
UsingCATALINA_HOME:/usr/share/apache-tomcat-8.0.23
UsingCATALINA_TMPDIR:/usr/share/apache-tomcat-8.0.23/temp
UsingJRE_HOME:/usr/java/jdk1.8.0_25
UsingCLASSPATH:/usr/share/apache-tomcat-8.0.23/bin/bootstrap.jar:/usr/share/apache-tomcat-8.0.23/bin/tomcat-juli.jar

重启Tomcat(必须先启动):

[root@srv6~]#servicetomcatrestart
UsingCATALINA_BASE:/usr/share/apache-tomcat-8.0.23
UsingCATALINA_HOME:/usr/share/apache-tomcat-8.0.23
UsingCATALINA_TMPDIR:/usr/share/apache-tomcat-8.0.23/temp
UsingJRE_HOME:/usr/java/jdk1.8.0_25
UsingCLASSPATH:/usr/share/apache-tomcat-8.0.23/bin/bootstrap.jar:/usr/share/apache-tomcat-8.0.23/bin/tomcat-juli.jar
UsingCATALINA_BASE:/usr/share/apache-tomcat-8.0.23
UsingCATALINA_HOME:/usr/share/apache-tomcat-8.0.23
UsingCATALINA_TMPDIR:/usr/share/apache-tomcat-8.0.23/temp
UsingJRE_HOME:/usr/java/jdk1.8.0_25
UsingCLASSPATH:/usr/share/apache-tomcat-8.0.23/bin/bootstrap.jar:/usr/share/apache-tomcat-8.0.23/bin/tomcat-juli.jar
Tomcatstarted.

我们应该检日志查看是否有错误

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

我们现在可以访问Tomcat Manager页面:

http://yourdomain.com:8080或者http://yourIPaddress:8080可以看到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>
<rolerolename="manager-gui"/>
<userusername="tomcat"password="secret"roles="manager-gui"/>
</tomcat-users>

应该注意赋予多个角色,以免不安全。

第五步(可选):使用JAVA_OPTS管理内存配置

正确配置堆内存取决于很多因素,为简单起见,我们将堆大小设置为相同的值128MB 添加JAVA_OPTS内存参数在我们的Catalina.sh文件。 下面编辑Catalina.sh文件设置堆大小

JAVA_OPTS="-Xms128m-Xmx128m"

我通常只是添加这个文件第二行:

#!/bin/shJAVA_OPTS="-Xms128m-Xmx128m"
#LicensedtotheApacheSoftwareFoundation(ASF)underoneormore
#contributorlicenseagreements.SeetheNOTICEfiledistributedwith
#thisworkforadditionalinformationregardingcopyrightownership.
#TheASFlicensesthisfiletoYouundertheApacheLicense,Version2.0
#(the"License");youmaynotusethisfileexceptincompliancewith
#theLicense.YoumayobtainacopyoftheLicenseat

第六步(可选):如何给指定的用户使用Tomcat

在上面的配置中我们使用ROOT用户运行Tomcat,处于安全原因,ROOT最好运行那些有必要的服务 当然没有规定必须这么做,但你最好谨慎点~

非ROOT用户运行Tomcat,需要做到以下几点:

[root@srv6~]#groupaddtomcat
[root@srv6~]#useradd-s/bin/bash-gtomcattomcat

上面的写法将tomcat用户的家目录创建在/home/tomcat如果你想让主目录放在其他位置,可以使用-d参数

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

这样可以将tomcat用户的家目录设置为/usr/share/apache-tomcat-8.0.23/tomcat

[root@srv6~]#chown-Rftomcat.tomcat/usr/share/apache-tomcat-8.0.23/
#!/bin/bash
#description:TomcatStartStopRestart
#processname:tomcat#chkconfig:2342080JAVA_HOME=/usr/java/jdk1.8.0_25
exportJAVA_HOME
PATH=$JAVA_HOME/bin:$PATHexportPATH
CATALINA_HOME=/usr/share/apache-tomcat-8.0.23/bin

case$1in
start)
/bin/sutomcat$CATALINA_HOME/startup.sh
;;
stop)
/bin/sutomcat$CATALINA_HOME/shutdown.sh
;;
restart)
/bin/sutomcat$CATALINA_HOME/shutdown.sh
/bin/sutomcat$CATALINA_HOME/startup.sh
;;
esacexit0
  1. 创建tomcat组:

  2. 创建tomcat用户并将他加入到组

  3. 将tomcat目录的所有权给tomcat用户

  4. 调整tomcat的启动脚本,在新脚本中添加tomcat用户

第七部(可选):如何将tomcat运行在80端口

运行下面的服务端口1024是给root以外的用户,你可以添加到你的ipables:

[root@srv6~]#iptables-tnat-APREROUTING-ptcp-mtcp--dport80-jREDIRECT--to-ports8080
[root@srv6~]#iptables-tnat-APREROUTING-pudp-mudp--dport80-jREDIRECT--to-ports8080

重启iptables

serviceiptablesrestart

第八部(可选):运行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>
ServerAdminadmin@yourdomain.com
ServerNameyourdomain.com
ServerAliaswww.yourdomain.com


ProxyRequestsOff
ProxyPreserveHostOn
<Proxy*>
Orderallow,deny
Allowfromall
</Proxy>


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


ErrorLoglogs/yourdomain.com-error_log
CustomLoglogs/yourdomain.com-access_logcommon

</VirtualHost>

实例 2: VHOST with ajp connector and mod_proxy:

<VirtualHost*:80>
ServerAdminadmin@yourdomain.com
ServerNameyourdomain.com
ServerAliaswww.yourdomain.com


ProxyRequestsOff
ProxyPreserveHostOn
<Proxy*>
Orderallow,deny
Allowfromall
</Proxy>

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


ErrorLoglogs/yourdomain.com-error_log
CustomLoglogs/yourdomain.com-access_logcommon
</VirtualHost>

vhost在这两个例子,我们"映射"到Tomcat的根目录。

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

这将重写所有请求yourdomain.comyourdomain.com/myapp

实例 3: VHOST with rewrite:

<VirtualHost*:80>
ServerAdminadmin@yourdomain.com
ServerNameyourdomain.com
ServerAliaswww.yourdomain.com


RewriteEngineOn
RewriteRule^/$myapp/[R=301]

ProxyRequestsOff
ProxyPreserveHostOn
<Proxy*>
Orderallow,deny
Allowfromall
</Proxy>

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


ErrorLoglogs/yourdomain.com-error_log
CustomLoglogs/yourdomain.com-access_logcommon
</VirtualHost>

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

附上我写的安装脚本:

https://github.com/biezhi/shell/blob/master/install_jdk

https://github.com/biezhi/shell/blob/master/install_tomcat

https://github.com/biezhi/shell/blob/master/downloadjdk.md

猜你在找的CentOS相关文章